我想调试一个“大”C 代码,并使用 valgrind,特别是 memcheck 工具。由于程序的大小,输出很长,我只想关注程序的一些功能和相关子功能。 valgrind 是否可以只分析某些函数和子函数(达到某个深度级别)?
谢谢
最佳答案
Valgrind 必须从一开始就监督整个过程;不可能将其附加到已经运行的进程(或者等效地,忽略该进程直到执行中的某个点,然后开始模拟/检查)。
反之则不然——你可以在执行一定数量的指令后“分离”valgrind;但我猜这不是你想要的。
请注意:
- “输出很长”是一个糟糕的借口——Valgrind 错误通常是 真正的积极因素(除非您使用优化的代码,在这种情况下:不要这样做),并且应该真正得到解决,并且
- 在解决未初始化值的使用之前,您可以通过使用
--undef-value-errors=no
专注于更严重的问题(堆损坏)。
关于c - 仅使用 valgrind 分析部分函数和子函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3717835/