2017-06-14 43 views
-1

假设我有一个包含100个函数的C++程序,每个函数有100个局部变量,每个函数都是一个数组,也许是1D,也许是2D,也许是3D,也许是动态分配的。 现在我正在调试程序,我必须检查所有变量是否正确。现在我简单地将fprintf()他们自己的文件,然后检查文件中的数据。但是我必须在程序中编写许多fprintf()语句和fopen(), fclose()语句,这很丑陋。如何用很多数据调试C++程序来检查?

是否有更好的方法或工具,可以简化和自动化可能这个东西?

+0

这个问题的方式广泛回答,请张贴代码,输出与预期输出。 – uzr

+4

如果你有一个像你所描述的程序,你*不要*调试它。你把它扔掉,然后回到制图板,从全新的改进设计开始。像这样的程序基本上是不可维护的。 –

+0

你对特定的代码有特定的问题吗?还是纯粹的理论问题? – HolyBlackCat

回答

1

您可以使用调试器这一点,但它会要求检查你自己的一切。 如果你想自动检查一切,只需编写单元测试并运行它们。

0

,并与100局部变量

有你的问题每个功能。切是让每个功能是100线(即使这样,它仍然是太多了!),你就会有一个战斗的机会

0

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

0

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

此外,如果你使用Linux或其他类Unix(基于Unix)系统,可以使用GDB进行调试。只需编译你的应用程序给-g标志gcc/g ++并使用GDB运行它。

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

那里可以添加断点和变量的打印值。阅读GDB manual更多细节