GDB函数调用跟踪

时间:2018-11-23 11:13:19

标签: gdb

是否可以将print语句附加到函数调用上?我想调试带有嵌套循环和逻辑的x64程序,通过在函数调用发生时打印它们(而不是设置断点)来查看函数调用的顺序会更快。

这可以通过gdb中的post钩子或其他技术来完成吗?

1 个答案:

答案 0 :(得分:1)

  

是否可以将打印语句附加到函数调用上?

是:将断点附加到要跟踪的每个函数,并将命令附加到这些断点中的每个:

(gdb) break foo
(gdb) commands $bpnum
continue
end

现在,每次调用foo时,GDB都会打印通常的“ Breakpoint N ...”消息,然后继续。

很明显,您可以打印其他信息(参数值,调用堆栈,线程ID等)。

您可能想要set height 0禁用分页。您可能还希望将其记录到文件中(请参见set logging fileset logging on等)