8-2 程序调试幻灯片.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Reigsters Debug工具条上的Reigsters按钮弹出一个框,显示当前的所有寄存器的值。 其他调试手段 系统提供一系列特殊的函数或者宏来处理Debug版本相关的信息,如下: 宏名/函数名 说明 TRACE 使用方法和printf完全一致,他在output框中输出调试信息 ASSERT 它接收一个表达式,如果这个表达式为TRUE,则无动作,否则中断当前程序执行。对于系统中出现这个宏 导致的中断,应该认为你的函数调用未能满足系统的调用此函数的前提条件。例如,对于一个还没有创建的窗口调用SetWindowText等。 VERIFY 和ASSERT功能类似,所不同的是,在Release版本中,ASSERT不计算输入的表达式的值,而VERIFY计算表达式的值。 本章应掌握的内容 掌握开发环境,工作空间,项目,程序模块的基本概念。 学会使用基本的调试工具。 本部分结束 * 第8讲继续 黄色右箭头表示当前就要执行的代码行 当前执行中的上下文(语境,函数) 自动给出的当前语境下的变量值、返回值观察窗口 Debug工具栏 自定义的观察窗口,可以定义多组 掌握Debug工具条的主要按钮含义 Stop debugging 停止调试 step into 单步跟进,如果当前语句有函数调用,则单步进入函数执行,否则单步执行完一条语句。 step over 单步执行完当前语句,若当前语句有函数调用,除非被调用函数中有断点,否则不会跟进函数。 step out 执行完当前语句所在函数的执行,返回该函数的调用处。 Run to cursor 执行到当前光标处, 注意观察箭头 便于理解记忆 常用进程控制快捷键 快捷键 说明 F5 go SHIFT+F5 Step over CTRL+F5 Execute program F7 Build CTRL+F7 Compile F10 Step over CTRL+F10 Run to cursor F11 Step into SHIFT+F11 Step out CRTL+SHIFT+F5 Restart 点击Step into后,进入函数Menu()执行 当前就要执行的代码行 语境切换成Menu() 6. 如何了解执行状态? 查看数值 VC支持查看变量、表达式和内存的值。所有这些观察都必须是在断点中断的情况下进行。 观看变量的值最简单,当断点到达时,把光标移动到这个变量上,停留一会就可以看到变量的值。 watch VC提供一种被称为Watch的机制来观看变量和表达式的值。 在断点状态下,在变量上单击右键,选择Quick Watch, 就弹出一个对话框,显示这个变量的值。 watch 单击Debug工具条上的Watch按钮,就出现一个Watch视图(Watch1, Watch2 , Watch3,Watch4),在该视图中输入变量或者表达式,就可以观察 变量或者表达式的值。 注意:这个表达式不能有副作用,例如++运算符绝对禁止用于这个表达式中,因为这个运算符将修改变量的值,导致 软件的逻辑被破坏。 点击Step over后,开始执行当前函数代码 自动给出当前语境下变量的值 当前执行的代码行 当前程序运行结果? 什么也没有,为什么? 因为没有输出任何内容 再次单击Step over,执行完第一个printf语句 printf语句返回值被自动给出,表示输出了38个字符 执行结果? 执行第1条printf语句以后的输出结果 点击run to cursor 将光标移动到此行 printf语句返回值被自动给出,表示输出了38个字符 执行到此行之前 刚才那几个变量怎么不见了?因为有点远(上下文),只显示执行位置附近的,想看怎么办? 可以在此处增加你想看的东西。 基本方法:直接在此处写上(还有别的办法加)你想看的内容的表达式 如:想看SeleFun和SelectTime值,想看SelectTime的地址,怎么办 手工增加SeleFun和SelectTime变量,系统会自动给出它们的值 继续以step over的方式到此语句,注意观察debug工具栏的几个按钮已经变灰,原因是在执行scanf语句,等待你在运行窗口中录入数据 手工在任务条点击显示运行窗口,输入3 当前上下文的一些东西又自动出现了 这个+号表示还可展开查看 各个变量的值发生了变化 继续单击Step over,执行到ExecuteFunction函数,然后单击Step into进入此函数。 单击Step into进入ExecuteFunction函数执行代码。 为什么SeleFun的值发生了变化? 原因:语境发生变化了,ExecuteFunction函数

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档