欢迎来到天天文库
浏览记录
ID:25661441
大小:55.68 KB
页数:5页
时间:2018-11-22
《[计算机]vc60调试技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、一直很想总结一下关于在VC++6.0编译器中关于程序调试的方法,但是由于以前在大学上C++课我总是撬课,所以没有学好,今天看到一位网友总结一篇,我就来个拿来主义了。调试程序可以帮助的了解程序是怎样运行的。1、如何快速地规范代码缩进格式选中所需要规范的代码,按shift+F82、如何在Release状态下进行调试Project->Setting…->ProjectSettings对话框,选择Release状态。“C/C++”标签页中的Category选General,Optimizations选Disable(Debug),D
2、ebuginfo选ProgramDatabase。在“Link”标签页中选中Generatedebuginfo复选框。注:只是一个介乎Debug和Release的中间状态,所有的ASSERT、VERIFY都不起作用,函数调用方式已经是真正的调用,而不查表,但是这种状态下QuickWatch、调用队列跟踪功能仍然有效,和Debug版一样。3、Release和Debug有什么不同。Release版称为发行版,Debug版称为调试版。Debug中可以单步执行、跟踪等功能,但生成的可执行文件比较大,代码运行速度较慢。Release版
3、运行速度较快,可执行文件较小,但在其编译条件小无法执行调试功能。Release的exe文件链接的是标准的MFCDLL(UseMFCinasharedorstaticdll),比如MFC42.DLL。这些DLL在安装Windows的时候,已经配置,所以这些程序能够在没有安装VisualC++6.0的机器上运行。而Debug版本的exe链接了调试版本的MFCDLL文件,如MFC42D.DLL。在没有安装VisualC++6.0的机器上不能运行,因为缺MFC42D.DLL等,除非选择usestaticdllwhenlink。4、A
4、SSERT和VERIFY有什么区别ASSERT里面的内容在Release版本中不编译,VERIFY里面的内容仍然编译,但不再判断真假。所以后者更安全一点。例如ASSERT(file.Open(strFileName)),一旦到了Release版本中,这一行就忽略了,file根本就不Open()了,而且没有任何出错的信息。如果用VERIFY()就不会有这个问题。5、Workspace和Project之间是什么样的关系每个Workspace可以包括几个project,但只有一个处于Active状态,各个project之间可以有依
5、赖关系,在project的Setting…中可以设定,比如那个Active状态的project可以依赖于其他的提供其函数调用的静态库。6、如何在非MFC程序中使用ClassWizard在工程目录下新建一个空的.RC文件,然后加入到工程中就可以了。7、如何设置断点按F9在当前光标处增加一个断点和取消一个断点。另外,在编辑状态下,按Ctrl+B组合键,弹出断点设置对话框。然后单击【Condition…】按钮弹出设置断点条件的对话框进行设置。8、在编辑状态下发现成员变量或函数不能显示提示,如何打开显示功能这似乎是目前这个Visua
6、lC++6.0版本的一个bug,可按如下步骤使其正常,如再出现,可如法炮制:(1)关闭Project,(2)删除“工程名.ncb”文件,(3)重新打开工程9、如何将一个通过ClassWizard生成的类彻底删除首先在工作区的FileView中选中该类的.h和.cpp文件,按delete删除,然后在文件管理器中将这两个文件删除,再运行ClassWizard,这时出现是否移走该类的提示,选择remove就可以了。10、如何将再Workspace中消失的类找出来打开该类对应的头文件,然后将其类名随便改一下,这个时候工作区就会出现新
7、的类,再将这个类改回原来的名字就可以了。还可以用以下方法:(1)关闭VC,删除文件夹中的*.clw文件,然后重新打开VC,重建。(2)备份.h和.cpp文件,然后删除.h和.cpp文件,重新加入。(3)在ClassWizard中为这个类生成一个消息处理函数,你就可以在ClassView中看到了,这样可以不用关闭、重启VC。你可以手工删除加进的函数。11、如何清除所有的断点菜单【Edit】->【Breakpoints…】,打开“Breakpoints”对话框,单击【RemoveAll】按钮即可。快捷键是“Ctrl+Shift+
8、F8”。12、如何再ClassWizard中选择未列出的信息打开“ClassWizard”对话框,然后切换到“ClassInfo”页面。改变“Messagefilter”,如选择“Window”,“Message”页面就会出现Window的信息。13、如何检测程序中的括号是否匹配把光标移动
此文档下载收益归作者所有