简单来说,有两种方式,一种是
源码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)点击确定,重新编译,就能调试了。有时候下断点并不是好主意,特别是对于调试关于显示/绘图的代码,这种代码如果想用断点调试你得把你的程序设置成总是前端显示的窗口,如任务管理器那样.
另外你可以在合适的位置让插入一些代码让扬声器发生如:插入MessageBeep,Beep等函数
还可以为程序创建一个控制台窗口,输出一些调试信息.还可以禅和使用文件来纪录调试输出信息.
如果使用控制台(就是DOS程序那样的窗口,在任何位置调用AllocConsole()就能得到一个)你最好封装一个专门输出调试信息的类或者一套完成此功能的函数,这样不用蔽埋每次都写程序都写一大段复杂的代码.我就是这样做的宏袭蚂.
这种控制台的输出要用WriteConsole以前的那种printf好像不能正常
这里有一系列控制台输出的文档:
http://msdn.microsoft.com/en-us/library/ms682073(v=vs.85).aspx
评论列表(0条)