怎样跟踪调试MFC程序

怎样跟踪调试MFC程序,第1张

有时候下断点并不是好主意,特别是对于调试关于显示/绘图的代码,这种代码如果想用断点调试你得把你的程序设置成总是前端显示的窗口,如任务管理器那样.

另外你可以在合适的位置让插入一些代码让扬声器发生如:插入MessageBeep,Beep等函数

还可以为程序创建一个控制台窗口,输出一些调试信息.还可以禅和使用文件来纪录调试输出信息.

如果使用控制台(就是DOS程序那样的窗口,在任何位置调用AllocConsole()就能得到一个)你最好封装一个专门输出调试信息的类或者一套完成此功能的函数,这样不用蔽埋每次都写程序都写一大段复杂的代码.我就是这样做的宏袭蚂.

这种控制台的输出要用WriteConsole以前的那种printf好像不能正常

这里有一系列控制台输出的文档:

http://msdn.microsoft.com/en-us/library/ms682073(v=vs.85).aspx

简单来说,有两种方式,一种是源码debug,即分析源码来找出bug位置,一般使用printf()打印出程序执行每一步的信息,一种是可执行文件debug,需要使用调试器来进行。1.源码debug。类似于下面的源码,主要通过程序执行时输出的信息,来定位bug出现的位置,然后再修改源码。例如:#includevoidf(){}intmain(){#ifdef_DEBUGprintf("startmainfunction!\n")#endifvoidf()#ifdef_DEBUGprintf("leavemainfunction!\n")#endifreturn0}2.可执行文件调试,windows平台常用的就是vs/vc自带的调雹笑试,另外一个态肆竖就是微软自家开发的调试器windbg。Linux平台以gdb为常用。下面以dev-C++为例:1)在逗工具地-》编译选项-》"编译时加入以下命令"下面的编辑框里加上:-g32)在下面的"在连接器命令行加入以下帆大命令"下的编辑框上加上:-g33)转到程序页,把gcc行修改为:gcc.exe-D__DEBUG__,4)把g++行修改为:g++.exe-D__DEBUG__,5)点击确定,重新编译,就能调试了。

在c++中有以下4种方法对程序进行调试方法:

1、先打开 一个 已编好 的程序 ,如下。这段代码 表示 :输入一个整数,计算他的累乘n,n 为输入的整数。

2、将鼠标光标 移到 程序开头, 单击 工具栏“Step into”图标,在行数 的右边会出现 一个 黄色的小箭头。它表示程序 执行了 这一行代码的上一行,还未执行 当前这行。

3、继续点击 “Step into”,黄色箭头 向下移动,代码向下一行执行。这时,执行了 一个 scanf 输入函数,在d出的 黑色对话框中 输入一个整数 ,比如 3, 再返竖 点击 “enter”键,我们可以发现 窗口中 n 的值 变数灶为了 3 。

4、继续点击 “Step into”,开始执行while 循环。可以发现 窗口中变量 a ,i ,的值在不断变化。当 i =4时 ,满足条件 ,退出了 循环,开漏毕大始执行 printf 输出函数。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12400643.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存