查看调用栈
可以使用backtrace
命令查看当前函数的调用栈。下面用一个 C++ 程序演示一下:
编译这个程序,并使用 gdb 调试。我们在代码第 5 行设置断点(在bar()
函数里面),运行程序之后,就可以使用backtrace
命令查看bar()
函数的调用栈:
调试正在运行的程序
gdb 也可以用来调试正在运行的进程,例如下面的 C++ 程序:
编译并运行这个程序:
可以看到进程 ID 是5507
,可以使用 gdb 调试这个进程:
使用backtrace
命令查看调用栈:
在调试的时候,这个进程会暂停执行,当调试结束的时候,进程会恢复执行。