使用gdb跟踪C ++中的函数调用

时间:2012-02-08 04:36:21

标签: c++ debugging gdb callstack

我在Linux平台上使用C ++开发了一个系统。我正在对这个系统进行一些调试。我想查找函数的完整函数调用序列。让我们假设函数按以下顺序调用

function_1 -> function_2 -> function_3 -> function_4

如果我在function_4上设置了一个断点,那么执行将在那时保持。我想看看在function_4之前调用functions_1,function_2和function_3。如果有任何gdb命令来跟踪这些函数调用吗?

谢谢, ANKUR

3 个答案:

答案 0 :(得分:8)

你想要一个回溯。 gdb命令bt将准确显示您感兴趣的内容。

答案 1 :(得分:2)

答案 2 :(得分:1)

如果function_1()调用function_2()调用function_3()等

您可以在function_4()中设置断点,然后使用命令

where

打印堆栈的回溯

另一个可能有用的工具是带有callgrind工具的valgrind