资源描述
vc+6.0 调试详细教程Step intoStep overStep outRun toWatchVariablesRegistersMemoryStop DebugCall stackDisassemblyRestart Debugger2、调试的一般过程调试,就是在程序的运行过程的某一阶段观测程序的状态。在一般情况下程序是连续运行的, 所以我们必须使程序在某一地点停下来。我们所做的第一项工作就是设立断点;其次再运行 程序;当程序在设立断点处停下来时,利用各种工具观察程序的状态。程序在断点停下来后,有时我们需要按我们的要求控制程序的运行,以进一步观测程序的 流向。下面我们依次来介绍断点的设置,如何控制程序的运行以及各种观察工具的利用。3、设置断点在 VC 中,可以设置多种类型的断点,根据断点起作用的方式把这些断点分为三类:1、与位置有关的断点;2、与逻辑条件有关的断点3、与 WINDOWS 消息有关的断点。主要介绍前面两种断点。4、设置位置断点最简单的是设置一般位置断点:i把光标移到你要设断点的位置,当然这一行必须包含一条有效语句的;i然后按工具条上的add/remove breakpoint按钮或按快捷键F9。将会在屏幕上看到在这一行的左边出现一个红色的圆点表示这里设立了一个断点5、设置位置断点图示6、设置逻辑断点有的时候可能不需要程序每次运行到这儿都停下来,而是在满足一定条件的情况下才停下 来,这时就需要设置一种与位置有关的逻辑断点。从 EDIT 菜单中选中 Breakpoints 命令,这时 Breakpoints 对话框将会出现在屏幕上。选中 Breakpoint 对话框中的 Location 标签,使 Location 页面弹出。如下页图所示。7、JBrcakpoinlsRemove AllClick Itic Condilion button if you wanl to set conditiana) parameters lor your breakpoini.Brakpoi nts1acationCancefEdit CodeCondition RemoveBrest 疏:(,Dc+ *pragramDct)EigExamptemajrr.EppllJ J 8吧和/Rwny罠噸g”cppJIT 伺ut CFunreyStringxppM4 .918、设置逻辑断点单击上页 Condition 按钮,弹出 Breakpoint Condition 对话框,在 expression_r 编辑框中写 出你的逻辑表达式,最后按OK返回。这种断点主要是由其位置发生作用的,但也结合了逻辑条件,使之更灵活。9、控制程序的运行上面我们讲了如何设置各类断点,下面我们来介绍如何控制程序的运行。当我们从菜单Build 到子菜单Start Debug选择Go,程序开始运行在Debug状态下,程序会由于断点而停顿下来 后,可以看到有一个小箭头,它指向即将执行的代码。10、控制程序的运行s- DebugExswIe - MicrDMft Visual C+ brea - nkafn.cpp門曲73| 141刚曲曲Rl iJ | | S* 爭 i -.! r、旳曲!打二1湮/Rairii 卩& 尹e 訝: 曲严 臼引削g凶 3、过曲 兰曲的Weirlc即 midk DtilHigFxiMirniile 怎 OebuyExanipEe lilcs H J Somrce FilmJJTufliwySBringppMj niBih.i:|i|i-23 Header Flte-s_5J FuninyS(rinig.h _J He s.uurt:? FFIrtincludr lRtlude W i nc I mlr Hi. delude FunnyStriog-hint )fynnuStrinq st,sistout C 畀coiit C M s1 * s2 刘: Sl52 endll eturn tJ;Value观察奁口Cantexl: mainQ变呈空门NameI pnqt hi sPtrJWatch 1 / !r ri-c-2 li,si:h4 /随后,我们就可以按要求来控制程序的运行:其中有四条命令:jStep overjStep IntojStep OutjRun to Cursorj Step over :运行当前箭头指向的代码(只运行一条代码);j Step Into :如果当前箭头所指的代码有函数的调用,则用Step Into进入该函数进行单步执行;Step Out:如当前箭头所指向的代码是在某一函数内,用它使程序运行至函数返回处;Run to Cursor:使程序运行至光标所指的代码处。11、查看工具的使用调试过程中最重要的是要观察程序在运行过程中的状态,这样我们才能找出程序的错误之 处。这里所说的状态包括各变量的值、寄存器中的值、内存器中的值、堆栈中的值,为此我 们需要利用各种工具来帮助我们察看程序的状态。12、查看工具的使用0弹出式调试信息泡泡(Data Tips Pop_up Information)。当程序在断点停下来后,要观察一个变量或表达式的值的最容易的方法是利用调试信息泡 泡。要看一个变量的值,只需在源程序窗口中,将鼠标放到该变量上,你将会看到一个信息 泡泡弹出,其中显示出该变量的值。13、查看工具的使用变量窗口0变量窗口 (VARIABLE WINDOW)。在View菜单,Debug Windows选Variables;变量窗口将出现在屏幕上。其中显示着变量名及其对应的值。你将会看到在变量观察窗口的下部有三个标签: Auto , Locals, this 选中不同的标签,不同类型的变量将会显示在该窗口中。14、0 观察窗口 (WATCH WINDOW)在View菜单,选择Debug Windows命令的Watch子命令。这时观察窗口将出现在屏幕 上。* DebugUxacnple - Micnwoft Visual C+ bre - nMfn.cfrpJB Fie y: 辱曲鬥 PTJJUrt 凶TSHiS 虫J3V 4ttl*曲All1 gl.ob mtmbcps* in sint! n胭 ifl cpn一:二 =jJ 至临I WflM列IJtlOH DbiigE: XiHmiilr 库 DebugExanipEt 1ilcsB -_j Source FllcaLfilFwifwSWfclllXHlI 上niairt.L|j|j_j Header Rks 討 FunmySbiRg.h Rrs.gurce FFIrfJ-iinicluile Kinelude iijiric I mrif stir jn rj .hSiRclude funnyStrig-h1int maiiii()FunmjlS tring s1 r&2 jrziFiit: HPJ.pjsip input si : H:; cln si; 5 Class View目 FiluVicvrcout 羿fcout C M 51 # S2 is : S1 + S2 (idl;returntrVfilue田SJ在上图的观察窗口中双击 Name 栏的某一空行,输入你要查看的变量名或表达式回车后你将会看到对应的值。16、查看工具的使用观察窗口可有多页,分别对应于标签Watchl,Watch2,Watch3和Watch4。假如你输入的表达 式是一个结构或是一个对象,你可以用鼠标点取表达式右边的形如 + ,以进一步观察其中 的成员变量的值 。GJobals/./naifi .cppwinOreturn111弧dim焙dSPtaut cinEfiOt 匚intluclEide niiteiKiae Uinclud-F tincliydB匚fiut FunhyString 41,12Tlease Iftput-ple&e ioputCiostrean lhCi FimnyS tring(p) WBitspwe VctiugEMHiplu -痂D豊bugEx冊pl电lil总乡-_J Smijcs Fili;. 里FtinftyS确琢1 2 niaifi.cp|-_J Headier Files1 FuimySisrinii.lii Resuuece Fileslengch ffl sPtr尿i*:EEoFt Vnivl C+ * Ibrwk |nuirKp|-站,uj;Cnlexl: maliRO出叱Yilue3 AUtc劈百a0 31lengthS sPtrfoieouoasD ”1.9 i凶3| Ajuto/ LOCK X/
展开阅读全文