必知的调试技巧.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
vc++断点的使用:按 F9(设置断点),F5调试,F10单步调试,shift+F5退出调试 F10单语句执行,F11单指令执行,Ctrl+F10执行至光标处;F9按行设置/取消断点, Alt+F9可按行,按数据或按消息设置断点;调试时,按 Alt+3打开跟踪窗口, Alt+4打开变量窗口, Alt+5打开寄存器窗口, Alt+6打开内存窗口, Alt+7打开堆栈窗口,Alt+8打开汇编指令窗口; 1:概述 调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言。不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。 这里我简要的根据自己的经验列出调试中比较常用的技巧,希望对大家有用。本文约定,在选择菜单时,通过/表示分级菜单,例如 File/Open 表示顶级菜单File 的子菜单 Open。 2: 设置 为了调试一个程序,首先必须使程序中包含调试信息。一般情况下,一个从AppWizard 创建的工程中包含的Debug Configuration 自动包含调试信息,但是是不是 Debug 版本并不是程序包含调试信息的决定因素,程序设计者可以在任意的 Configuration 中增加调试信息,包括Release 版本。 为了增加调试信息,可以按照下述步骤进行: 打开Project settings 对话框(可以通过快捷键 ALT+F7打开,也可以通过 IDE 菜单 Project/Settings 打开) 选择 C/C++页,Category 中选择 general ,则出现一个 Debug Info 下拉列表框, 可供选择的调试信息 方式包括: 命令行 无 /Zd  None没有调试信息LineNumbers目标文件或者可执行文件中只包含全局和导出符号 None 没有调试信息 Line Numbers 目标文件或者可执行文件中只包含全局和导出符号 Only 以及代码行信息,不包含符号调试信息 /Z7 C 7.0- Compatible /Zi Program Database 目标文件或者可执行文件中包含行号和所有符号调试信息,包括变量名及类型,函数及原型等 创建一个程序库(PDB),包括类型信息和符号调试信息。 Program Database 除了前面/Zi 的功能外,这个选项允许对代码进行调 /ZI for Edit and 试过程中的修改和继续 执行。这个选项同时 使 Continue #pragma 设置的优化功能无效 选择 Link 页,选中复选框Generate Debug Info,这个选项将使连接器把调试信息写进可执行文件和 DLL 如果 C/C++ 页中设置了 Program Database 以上的选项, 则 Link incrementally 可以选择。选中这个选项,将使程序可以在上一次编译的基础上被编译(即增量编译),而不必每次都从头开始编译。 3: 断点 断点是调试器设置的一个代码位置。当程序运行到断点时,程序中断执行,回到 调试器。断点是 最常用的技巧。调试时,只有设置了断点并使程序回到调试器, 才能对程序进行在线调试。 设置断点:可以通过下述方法设置一个断点。首先把光标移动到需要设置断点的代码行上,然后 按 F9快捷键 弹出 Breakpoints 对话框,方法是按快捷键CTRL+B 或 ALT+F9,或者通过菜单 Edit/Breakpoints 打开。打开后点击 Break at 编辑框的右侧的箭头,选择 合适的位置信息。一般情况下,直接选择line xxx 就足够了,如果想设置不是当前位置的断点,可以选择 Advanced,然后填写函数、行号和可执行文件信息。去掉断点:把光标移动到给定断点所在的行,再次按 F9就可以取消断点。同前面所述,打开 Breakpoints 对话框后,也可以按照界面提示去掉断点。 条件断点:可以为断点设置一个条件,这样的断点称为条件断点。对于新加的断点,可以单击 Conditions 按钮,为断点设置一个表达式。当这个表达式发生改变时,程序就 被中断。底下设置包括“观察数组或者结构的元素个数”,似乎可以设置一个指针所指向的内存区的大小,但是我设置一个比较的值但是改动 范围之外的内存区似乎也导致断点起效。最后一个设置可以让程序先执行多少次然后才到达断点。 数据断点:数据断点只能在Breakpoints 对话框中设置。选择“Data”页,就显示了设置数据断点的对话框。在编辑框中输入一个表达式,当这个 表达式的值发生变化时,数据断点就到达。一般情况下,这个表达式应该由运算符和全局变量构成,例如:在编辑框中输入 g_bFlag 这个全局变量的名字,那么当程序中有g_bFlag= !g_bFlag 时,程序就将停在这个语句处。 消息断点:VC

文档评论(0)

tianya189 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地湖北
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档