我想要完整的堆栈跟踪,主要是正常执行二进制文件时遍历的函数列表。
AFAIK,GDB仅在遇到断点或发生崩溃时提供跟踪。
答案 0 :(得分:3)
这称为the call graph。
这需要:
在上面,只有第一个提供100%的准确性,当然一般来说很难做到,因为你经常使用库,即使你有自己的代码也不会被检测到
这很难的原因是堆栈框架"历史"通常没有记录;一旦程序停止运行,就不会检查当前的堆栈帧,这与在调试器中打破时不同。
答案 1 :(得分:0)
如果您的操作系统提供dtrace
,则可以使用PID provider:
pid提供商
pid提供程序允许跟踪用户进程中任何函数的输入和返回...