(转)VC6调试技巧总结b

 本文转载:http://blog.csdn.net/changqiang08/article/details/7642387

vc6.0程序调试技术总结

学c语言,一直编写的都是小程序。但是在写单片机程序时,会出现一些问题,就需要程序的调试技术。在图书馆借了一本书《c语言程序设计实验教程》(西工大出版社),再结合网上一些网友的博文,在这里对vc6.0的程序调试技术简单梳理一下。

现代程序调试的方法主要有两种:单步法、断点法。

一、单步法

a、step  into                 F11                单步调试

遇到函数时,会进入到函数内部进行更深入的单步调试,若是系统库函数代码。则可能进入指令级而非源代码级的单步调试。

b、step  over                F10                单步调试

遇到函数时。把函数当做 “一步” 来完成调试,如遇到已调试正确的函数,或系统库函数就可以直接用step  over

c、step   out                 F11 +  shift     退出

d、run to cursor           F10 +  ctrl        多步调试/快步调试

step  into和step  over的区别是step  over一直下一步,step  into 在step  over的基础上,遇到函数会进入到函数内部,以便更深入的单步调试。

run to cursor可进行多步调试,从当前程序调试运行的程序行运行到光标所在程序行。

二、断点法

基本思想:在程序中,设置若干断点,在执行过程中程序连续运行下去,遇到断点程序或断点条件时停止,在停下来的地方进行单步调试。

a、insert  breakpoint                 F9                断点设置

b、remove  breakpoint              F9                断点删除

c、location                                                     条件断点

为断点设置一个条件,条件可为表达式,当表达式发生改变时,调试结束。

d、data                                                          数据断点

为断点设置一个表达式(运算符+全局变量),当表达式的值发生改变时,数据断点就会到达,调试结束。

e、message                                                   消息断点

windows 程序对windows消息进行截获(截获方式:窗口消息处理函数和特定信息中断),当输入消息处理函数的名字,当每次有消息被这个函数处理时,断点就会到达。

(1)、条件断点

1、按F9,设置断点位置。

2、按快捷键“alt+ F9”, 或通过菜单“edit/breakpoints”打开“breakpoints”对话框,选择设置的断点,如下图

3、条件断点的表达式:i==0&&j==4

4、单击OK。现在我们开始调试程序,按F5, VC会弹出一个提示对话框,提示在你设置的条件断点的中断位置:

(2)数据断点

1、第1步和条件断点一样

2、

3、

(3)消息断点

三、观察法

通过单步或者断点,可以使使指定的程序停下来,vc提供多种数据观察方法来了解程序运行期间的各种信息,从而判断错误的原因。

(1)查看(watch)

vc支持查看变量、表达式和内存的值,当断点到达时,将光标移动到该变量和表达式上时停留片刻,就可以看到变量和表达式的值。

(2)定制查看(Quick Watch)

vc提供一种被称为watch的机制,查看变量、表达式的值,在断点状态下,在变量上单击右键,选择“Quick Watch ”,弹出一个“Quick Watch ”对话框,显示这个变量的值。表达式亦然,但这个表达式不能有副作用,“++”操作符会改变变量的值。

单吉Debug工具条上的“ Watch ”按钮,就出现一个“ Watch ”视图,在该视图中输入变量和表达式,就可以查看变量、表达式的值。

(3)内存查看(memory)

由于指针指向的数组,“ Watch ”只能查看第一个元素的值,为了显示其他元素,可以使用memory功能。单吉Debug工具条上的“memory ”按钮,就出现一个“memory ”视图,在该视图中输入地址和数组名,就可以显示该地址指向的内存的内容。

(4)变量查看(varibles)

(5)寄存器查看(Registers)

单吉Debug工具条上的“ Registers ”按钮,就出现一个“ Registers  ”视图,显示当前所有寄存器的值。

(6)调用堆栈(Call Stack )

调用堆栈反映了当前断点处函数是被哪些函数按照什么顺序调用的。单吉Debug工具条上的“ Call Stack ”按钮,就出现一个“Call Stack ”对话框,在该对话框显示了一个调用序列,最上面的是当前函数,往下依次是调用函数的上级函数。单击对应的函数,就可以跳转到对应的函数中去。

(7)反汇编视图(Disassembly)。

另:先下断点,然后按F5或者点击Debug->Start Debuging程序停在断点处。

然后点击按钮 Debug->Windows->DisAssambly

可以找到各个查看窗口

时间: 2024-10-25 00:05:47

(转)VC6调试技巧总结b的相关文章

Chrome 中的 JavaScript 断点设置和调试技巧

你是怎么调试 JavaScript 程序的?最原始的方法是用 alert() 在页面上打印内容,稍微改进一点的方法是用 console.log() 在 JavaScript 控制台上输出内容.嗯~,用这两种土办法确实解决了很多小型 JavaScript 脚本的调试问题.不过放着 Chrome 中功能越发强大的开发者工具不用实在太可惜了.本文主要介绍其中的 JavaScript 断点设置和调试功能,也就是其中的 Sources Panel(以前叫 Scripts).如果你精通 Eclipse 中的

一探前端开发中的JS调试技巧

前言:调试技巧,在任何一项技术研发中都可谓是必不可少的技能.掌握各种调试技巧,必定能在工作中起到事半功倍的效果.譬如,快速定位问题.降低故障概率.帮助分析逻辑错误等等.而在互联网前端开发越来越重要的今天,如何在前端开发中降低开发成本,提升工作效率,掌握前端开发调试技巧尤为重要. 本文将一一讲解各种前端JS调试技巧,也许你已经熟练掌握,那让我们一起来温习,也许有你没见过的方法,不妨一起来学习,也许你尚不知如何调试,赶紧趁此机会填补空白. 骨灰级调试大师Alert 那还是互联网刚刚起步的时代,网页前

js调试技巧 Firefox调试技巧汇总

Firebug入门指南        :  http://www.ruanyifeng.com/blog/2008/06/firebug_tutorial.html Firebug控制台详解: http://www.cnblogs.com/see7di/archive/2011/11/21/2257442.html    http://www.cnblogs.com/leejersey/archive/2012/11/27/2790998.html debugger: js中调用console写

5个Xcode开发调试技巧

转自Joywii的博客,原文:Four Tips for Debugging in XCode Like a Bro 1.Enable NSZombie Objects(开启僵尸对象) Enable NSZombie Objects可能是整个Xcode开发环境中最有用的调试技巧.这个技巧非常非常容易追踪到重复释放的问题.该技巧会以非常简洁的方式打印指出重复释放的类和该类的内存地址. 怎么开启僵尸对象呢?首先打开 Edit Scheme (或者通过热键?<),然后选择Diagnostics选项卡,

(转) Java程序员应该知道的10个调试技巧

原地址:http://www.csdn.net/article/2012-09-03/2809495-java-debugging-tips-with-eclipse 调试可以帮助识别和解决应用程序缺陷,在本文中,作者将使用大家常用的的开发工具Eclipse来调试Java应用程序.但这里介绍的调试方法基本都是通用的,也适用于NetBeans IDE,我们会把重点放在运行时上面. 在开始之前,推荐大家去看看Eclipse shortcuts这篇文章,它将会给你带来很多方便.在本文中使用的是Ecli

Ganglia 调试技巧

Gmond # 检查Gmond服务是否正在运行,发出如下命令:ps aux | grep gmond 输出: root      8046  0.0  0.0 103244   844 pts/0    S+   09:38   0:00 grep gmond nobody   25759  1.8  1.0 206388 82356 ?        Ssl  Apr28 208:45 /usr/local/sbin/gmond --conf=/etc/ganglia/gmond.conf #

VS2010常用调试技巧(1)

调试是一个程序员最基本的技能,其重要性不言自明.不会调试的程序员就意味着他即使会一门语言,却不能编制出好的软件.本文就本人在开发过程中常用的调试技巧作下简单呢介绍,希望对大家有所帮助,能力超群者请绕道. 1.单步调试(F10) 在Debug状态下,按下F10,逐行进行调试. 2.逐句调试(F11) 在调试状态下,按下F11,会逐句调试,遇到函数会进入函数内部调试. 3.跳到当前光标处(Ctrl+F10) 我经常看到有些初级程序员,为了到达目标代码位置,在程序运行前就早早设定了断点,然后反复按F1

Chrome调试折腾记_(3)JS断点调试技巧

JS调试技巧 技巧一:格式化压缩代码 技巧二:快速跳转到某个断点的位置 右侧的Breakpoints会汇总你在JS文件所有打过的断点,点击跟checkbox同一行的会暂时取消这个断点,若是点击checkbox下一行的会直接跳转到该断点的位置 技巧三:查看断点内部的作用范围[很实用] 右侧的scope可以看到相当多实用的信息,比如this的指向,是否有值,断点是对象还是其他等.. 技巧4:监听事件断点 右侧的Event Listener Breakpoints可以选择性的监听某类行为事件,比如键盘

网页调试技巧:抓取马上跳转的页面POST信息或者页面内容

http://www.qs5.org/Post/625.html 网页调试技巧:抓取马上跳转的页面POST信息或者页面内容 2016/02/02 | 心得分享 | 0 Replies 有时候调试网页或者抓别人网页的POST包的时候. 总会遇到这样的尴尬,我们需要抓取POST提交的信息. 或者获取POST完成页面返回的代码. 但是,目标页却马上就跳转了,导致,还没来得及Esc呢,页面就已经刷新了. 这种情况,起码谷歌浏览器的F12是搞不了了... 比如下面的情况 我把密码放在 被Post页面的源码