【发布时间】:2012-12-14 22:26:55
【问题描述】:
我正在处理 4-5 个 .c 文件(每个大约 2000 到 5000 行),其中包括几个 headers.Currently 我没有任何可以帮助我调试程序的调试打印 在执行过程中。
我的问题是:- 有没有办法(或一些现有的工具)来解析 .c 文件并添加新的打印集 .c 文件中当前范围内所有变量的语句?就像一样 VC++ 允许我们查看局部变量和全局变量等。我需要在每一步打印它们。还, 指针应该被取消引用。
例如。假设在 .c 文件中的某一时刻,有 10 个全局变量和 3 个局部变量。
我需要生成智能 printfs 来打印这 13 个变量。后来在
程序如果有 20 个变量,我应该能够打印 20 个变量等。
包含的头文件包含其中每个的所有相关声明
变量(可以是结构/指针/数组或某些组合等)
我试图通过 perl 脚本来实现这一点。
我所做的是,我生成了预处理文件(.i 文件)并尝试通过 perl 解析它 然后生成特定于每个变量的单独打印函数,但在半个 几天的努力我意识到它太耗时了。 有没有工具可以做到这一点?如果不是这个,任何接近它的东西都应该是好的 足够了(我可以在上面应用一些 perl 处理等) 我的目标是在程序执行之后,在程序执行过程中的每一步,我都应该能够看到变量(在该范围内有效),而无需调用调试器。
我被允许处理 .c 文件并重新编写它们等等等等。 希望我的问题很清楚,感谢您的回复。
【问题讨论】:
-
.. 你也可能得到答案。顺便说一句,听说过段落吗?
-
如何选择最佳答案??
-
点击它旁边的复选标记,它应该会从灰色变为绿色
-
代码中没有调试 printfs 是件好事。添加它们只会使调试变得更加困难。使用调试器。这就是他们的目的。
-
因为这并不是人们通常调试程序的方式,所以真的不会有很多工具可以实现这一点。去调试所有这些麻烦会更好地投资于单元测试,以验证变量应该是什么。
标签: c debugging pointers printing structure