繁体   English   中英

CPPUTest调试 - C ++

[英]CPPUTest debugging - C++

我正在学习TDD并在eclipse中使用CppUTest。 有没有办法调试我的代码得到一个唠叨的分段错误。

谢谢

我不知道CppUTest或Eclipse有什么特别的东西可以帮助你,但是一些通用的段错误调试思路似乎合适:

  • 刷新打印语句(例如printf(...)+ fflush(stdout)或fprintf(stderr,...))添加到您的代码中,看看打印的内容。 以二进制搜索方式执行此操作,一次只打印几次,直到您精确缩小崩溃位置。 这听起来很古老但非常有效。 这是一个我发现谷歌搜索的指南,谈论这个众所周知的技术: http//www.floccinaucinihilipilification.net/blog/2011/3/24/debugging-via-binary-search.html

  • 使用调试符号编译代码并在调试器中运行它。 当你遇到段错误时,请求回溯,看看你是否能弄明白发生了什么。 执行此操作时,使用图形调试器尤其有用。

  • 使用调试工具(如调试malloc库)valgrind套件中的某些内容运行代码。 这可能会捕获导致segfaults根本原因的问题,但不会发生在生成segfault的确切位置(例如,双重释放,以后使用的绑定数组访问blobbering指针等)。

如果您可以在问题中添加一些代码,让我们更好地了解您的反对意见,将会很有帮助。 不知道任何细节,我建议如下:

  1. 在调试对话框中将-v添加到可执行文件的参数中。 这将在执行时打印测试用例的名称。 打印的姓氏可能是发生分段错误的测试。
  2. 在该测试用例中放置一个断点,在此测试中调用您的代码
  3. 进入代码,直到发生段错误。
  4. 追溯导致段错误的值(最常见的是悬空指针)并找出为什么它是NULL或未初始化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM