掌握C++ builder的除错艺术

掌握C++ builder的除错艺术

ID:38056729

大小:34.00 KB

页数:6页

时间:2019-05-24

掌握C++ builder的除错艺术_第1页
掌握C++ builder的除错艺术_第2页
掌握C++ builder的除错艺术_第3页
掌握C++ builder的除错艺术_第4页
掌握C++ builder的除错艺术_第5页
资源描述:

《掌握C++ builder的除错艺术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、掌握C++builder的除错艺术(2).12007-8-10    作者:      编辑:眼镜丢了  点击进入论坛掌握C++Builder的除错艺术第二篇-近距离观察(1)1.调试可执行程序前的准备2.工程选项3.设置断点并闯入可执行程序4.察看储存在变量中的值5.使用Watches(观察)6.使用Inspectors(巡视器)7.使用Evaluate/Modify(求值/修改)8.SteppingThrough,OverandAroundBlocksofCode9.Stepping的类型10.

2、Stepping的注解11.其他提示Okay,(再小小准备一下)现在开始追踪、搜索经过前次的努力后仍然躲在代码中的bug的时候了,也就是开始跟踪前一篇文章代码里标记过的bug/异常。首先是准备阶段。调试可执行程序前的准备在我们开始调试可执行程序前,我们需要确保一些设置在大多数情况下的正确性。我将会一条接一条的过一遍,并简单解释一下为什么必须那样做。(如果您对有些东西感兴趣的话,按下帮助按钮,会有许多更详尽的内容)。现在就开始吧,先打开Project

3、Options选项。工程选项首先我们在"Compi

4、ler"(编译)标签处停下。您只需简单的单击"Fulldebug"(完全调试模式)按钮,我们所需的绝大多数的其余设置就已经搞定了。将"Codeoptimization"(代码优化)设为"None"(无)总是件好事,这样做实际上告诉编译器:所有的事情都已做好,只需产生机器码就行了。而不要为了提高一点点运行速度尝试进行其他的智能优化。(当然,一切都完成之后,您可以打开此项。)这样做的好处是大大降低了我们调试的难度。因为程序中的代码与我们书写的一样,没有被编译器优化过。在"debugging"(调试)面板

5、中,将"Debuginformation"(调试信息)选上(点一下),并且必须设置为"Linenumberinformation"(行数信息)。我还建议将"Disableinlineexpansions"(禁用内联扩展)一项选上。内联扩展对发布的代码来说很好,但调试时最好还是关掉此项,他只会让您更头痛。然后是"Pascal"标签,尤其在您的工程里连接了Pascal单元或使用了基于Pascal的VCL控件时(若您拥有其Pascal源码时,编译器会自动使用此节中的设置重新编译)。这里您必须将"Optim

6、ization"优化选项禁用,然后通常我会将"debugging"(调试)部分的所有选项选上(打钩)。接下来是"Linker"(链接)标签,我们需要选上"Createdebuginformation"(生成调试信息)。"UsedynamicRTL"(使用动态RTL)以及"Don''tgeneratestatefiles"(不要生成状态文件)是造成麻烦的选项。我通常都会使用状态文件(这样允许增量链接,但会在编译目录下产生一个4倍于可执行程序或更大的文件),换个角度来说,这样会增加链接大工程时的速度。而

7、使用dynamicRTL本身就是个争论,尚有很多赞同和反对的讨论。下一个是"Directories/Conditionals"(路径/条件)标签。在这里我们想要设定"Directories/Conditionals"(调试源路径)的值。我们永远都应将此处设定为$(BCB)sourcevcl,但是如果您有任何其他的组件附加的话,通常将它们的路径也加上是个好主意(路径与路径之间用”;”分隔或者您可以用按下…按钮弹出的对话框来设定它们)。最后也是最重要的设置是在"Packages"(程序包)标签上。根

8、据所有恰如其分的调试经验您必须禁用"Buildwithruntimepackages"(带运行时程序包编译)。这么做的原因是程序包本身不包含而且不能包含调试信息。这样做,也许不利于您跟踪标准的VCL代码,例如想看清楚VCL函数y中参数x是如何起作用的时候。但是大多数时候,您这么做将会发现调试器将您的绝大多数“症状”归结给VCL,尽管“病因”就在您的源代码中(或在其他的组件中(这已经在我们所有人身上发生了))。一旦您发布您的正式版本时,您可以决定是否使用程序包。(译者注:程序包的本质是一个特殊的DLL

9、,不带运行程序包(静态)编译可以让您的程序脱离Cbuilder独立运行。),但在调试时,请禁用掉。按下OK按钮,我们已经准备好啦。下一个对话框只需打开一次,但最好还是来检查以下我们在这里的设定是否正确。好了,打开”Tools

10、DebuggerOptions…”吧。对话框最下方的"Integrateddebugging"(集成调试器)选项是关键所在。确信已经打上钩。按下OK按钮准备编译可执行程序吧。我建议重新来一次彻底的编译(选择Project

11、BuildAll),如果

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。