如何调试C ++程序需要检查多少数据?

时间:2017-06-14 10:54:07

标签: c++ debugging io printf

假设我有一个包含100个函数的C ++程序,每个函数有100个局部变量,每个函数都是一个数组,可能是1D,也许是2D,也许是3D,可能是动态分配的。 现在我正在调试程序,我必须检查所有变量是否正确。现在我只需fprintf()将它们放到自己的文件中,然后检查文件中的数据。但我必须在程序中编写许多fprintf()语句和fopen(), fclose()语句,这非常难看。

有没有更好的方法或工具可以简化并可能自动化这些东西?

4 个答案:

答案 0 :(得分:1)

您可以使用调试器,但它需要自己检查所有内容。 如果要自动检查所有内容,只需编写单元测试并运行它们。

答案 1 :(得分:0)

  

并且每个函数都有100个局部变量

有你的问题。削减它,使每个功能是100行(即使它仍然太多!),你将有一个战斗的机会

答案 2 :(得分:0)

创建一个全局日志文件并打开/关闭一次。 调试打印是一个功能强大的工具,但我想你还需要一个工具(自己编写)来比较结果文件。

答案 3 :(得分:0)

首先,因为@UKMonkey已经说过你的函数不应该有100个局部变量。最佳做法是使功能最多25行,每行最多80个字符。这将使您更容易调试,并让其他人理解您的代码。

此外,如果您使用linux或其他类似unix(基于unix)的系统,则可以使用GDB进行调试。只需编译你的应用程序,给gcc / g ++提供-g标志,然后使用GDB运行它。

$ g++ -g example.cpp -o example.out
$ gdb ./example.out

您可以添加断点并打印变量值。阅读GDB manual了解更多详情