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

Tracing function calls in C++ using gdb

本文关键字:函数调用 C++ gdb 跟踪 使用      更新时间:2023-10-16

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

function_1 -> function_2 -> function_3 -> function_4

如果我在函数_4上设置一个断点,则执行将保持在该点。我想看看函数_1、函数_2和函数_3在函数_4之前被调用。如果有任何gdb命令来跟踪这些函数调用?

谢谢,Ankur

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

bt:backtracehttp://sourceware.org/gdb/onlinedocs/gdb/Backtrace.html

如果函数1()调用函数2(),函数2(调用函数3()等

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

where

打印堆栈的回溯

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