VC调试技巧之断点.doc_第1页
VC调试技巧之断点.doc_第2页
VC调试技巧之断点.doc_第3页
VC调试技巧之断点.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VC调试技巧之断点1 位置断点 (LOCATION BREAKPOINT)在代码中按F9设置一个位置断点,然后按F5运行,是最常用的断点方式,但是遇到如下代码时,就十分头疼了。int test(void) int i = 0, res = 99999999999;for(i = 0; i 999; i+)int tmp = getValue(); / A行 res /= tmp; /B行return res;运行代码,发现程序崩溃于B行,原因是tmp的值为0了,此时就需要在A行设置一个断点,然后进入getValue函数内部中查看运行状态。由于断点在循环体内,可能需狂按F5几百次。使用位置断点的断点跳跃就可以大大减少体力劳动。 断点跳跃-执行断点但不在断点处停止,直到执行完了一个特定的次数为止。在BREAK POINT框中,选中A行断点,点击CONDITION,弹出图1窗口,在“.SKIP BEFORE STOPPING“中输入1000,按F5运行,当程序崩溃时,按CTRL+B打开BREAKPOINT框,发现此断点后有:.100 times remaining,说明还剩下100次循环没有执行,即程序在执行在900次循环时就挂掉了。按上述步骤,将断点跳跃的值改为900,重新启动程序,当循环到900次时,断点就在A行启动,可按F11进入getValue函数体中寻找返回0的原因。 图 1当知道程序在循环900次时挂掉,可以使用断点条件表达式,即表达式为真时才触发断点。在”Enter the expression to be evaluated” 中输入”i = 900”,并重新运行程序,效果跟上述一样,断点在i等于900时启动。使用断点条件表达式要注意不能包含任何函数和宏。 图 2此外,断点条件表达式与断点跳跃可组合使用;BREAKPOINT框第二个编辑框中为要查看的项目数量。2 数据断点 (DATA BREAKPOINT)在调试软件的过程中,经常要对全局变量的变化过程进行追踪,但是又不知道在哪里设断点。此时可以使用数据断点。按CTRL+B打开BREAKPOINT窗口,选中DATA选项页(如图3),在第一个输入框中输入 “MMI_fixed_matrix_menu.highlighted_row”, 图3当MMI_fixed_matrix_menu.highlighted_row的值发生改变时,就会弹出警告框(如 图4)并把程序停到改变该变量值的地方(如 图5) 图 4 图 5若想知道变量是在何处被改为某个特定值,此时可将断点条件改为“MMI_fixed_matrix_menu.highlighted_row = 0”,当条件满足时,断点启动。此外,还可以利用数据断点跟踪数组的越界导致覆盖其他变量等十分棘手的问题。3 消息断点(MESSAGE BREAKPOINT) 该断点用得很少,且一般可以用上述两种断点替代。4 高级断点高级断点的语法由两部分组成:1. 上下文(CONTEXT)-即函数,源文件,可执行文件2变量,表达式或绝对位置例如:在Main.c的第100行设一个位置断点,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论