WEB开发网
开发学院软件开发VC 关于调试时输出的字符串信息 阅读

关于调试时输出的字符串信息

 2010-07-11 20:44:33 来源:WEB开发网   
核心提示:使用工具:VC6.0,IDA当我们要在程序中输出调试信息时,关于调试时输出的字符串信息,常常以字符串的形式来输出,例如:printf("Some debug information here!");这段代码在Debug和Release版下都输出调试信息,,虽然在Release版下运行程序没有输出调试

使用工具:VC6.0,IDA

当我们要在程序中输出调试信息时,常常以字符串的形式来输出,例如:

printf("Some debug information here!
");

这段代码在Debug和Release版下都输出调试信息,这不是我们所要的,一般地大家都会添加预编译指令,如下所示:

#if _DEBUG 
   printf("Some debug information here!
");
   #endif

这样就达到了在Debug版里程序输出调试信息,在Release版下不输出调试信息的目的。(在Release版里连printf函数都没有调用)可如果要在程序里的许多地方输出调试信息,若采用上面的方式会很麻烦;

(至于为什么麻烦,可能就是不愿多敲几次键盘吧,呵呵。。。)

于是大家都想到写个输出函数,代码如下:

void printInfo(char *strInfo)
   {
   #if _DEBUG
     printf(strInfo);
   #endif
   }

注:该函数只是演示用的,很简单,没有其他检查字符串功能。

在要输出调试信息的地方,调用如下语句就行:

printInfo("Some debug information here!
");

确实,在Debug模式下运行该程序,则输出如下信息:

Some debug information here!

在Release模式下,则没输出什么信息;

我们往往在这个时候认为一切都OK了;如果你认为是,就没必要往下看了;呵呵。。。

虽然在Release版下运行程序没有输出调试信息来,可这些调试信息却留在了二进制的可执行文件里;

我们可以用IDA来打开该Release版的可执行文件,看到如图一所示的信息:

1 2 3  下一页

Tags:关于 调试 输出

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接