一种列出每个被调用函数及其参数和返回值的方法,用于调试c ++

时间:2010-12-09 10:09:54

标签: c++ debugging

有没有办法通过在程序执行过程中自动输出每个函数调用以及返回值来简化调试过程?

也许是一个在每个函数之前和之后添加输出代码的工具,我可以在调试时使用它然后取消它?

我在Windows上的Eclipse中编写代码,并在没有图形界面的Linux服务器上使用GNU C ++进行编译 - 因此没有可用的KCachegrind。单独使用Valgrind + callgrind会产生大量文本,这对我来说似乎并不适用......

GDB调试器在某种程度上是一种选择,但如果我想要每个(我的)函数调用数据而不是每个语句,那么它的速度很慢且太详细。

当搜索到这个时,我记得读过有两个特殊的函数可以定义,它们会在每个函数的开始和结束时自动执行,然后可以定义它们来输出变量。但是,它适用于其他一些编程语言或特定的C ++ IDE。

2 个答案:

答案 0 :(得分:2)

我会说valgrind + callgrind,您可以在程序运行时控制输出,您可以使用kcachegrind来检查kde中的输出。

答案 1 :(得分:1)

您可以使用valgrind