如何在gdb中一次性获得整个堆栈跟踪?

如何在gdb中一次性获得整个堆栈跟踪?,gdb,kernel,Gdb,Kernel,我正在调试一个内核,显然,在ARM上运行故障处理程序的方式是,在到达任何实际代码之前,它们要经过数百层的uu pabt_usr。无论如何,我正在通过模拟器远程调试,一点一点地获取跟踪速度很慢。有没有办法一下子把整件东西都拿来 编辑:反向打印堆栈跟踪也会有帮助 我不知道是否可以给出完整的回溯,但您可以给'bt'一个数字参数以获得更多帧: (gdb) bt 10 #0 x () at test.c:4 #1 0x080483bf in x () at test.c:4 #2 0x080483b

我正在调试一个内核,显然,在ARM上运行故障处理程序的方式是,在到达任何实际代码之前,它们要经过数百层的uu pabt_usr。无论如何,我正在通过模拟器远程调试,一点一点地获取跟踪速度很慢。有没有办法一下子把整件东西都拿来


编辑:反向打印堆栈跟踪也会有帮助

我不知道是否可以给出完整的回溯,但您可以给'bt'一个数字参数以获得更多帧:

(gdb) bt 10
#0  x () at test.c:4
#1  0x080483bf in x () at test.c:4
#2  0x080483bf in x () at test.c:4
#3  0x080483bf in x () at test.c:4
#4  0x080483bf in x () at test.c:4
#5  0x080483bf in x () at test.c:4
#6  0x080483bf in x () at test.c:4
#7  0x080483bf in x () at test.c:4
#8  0x080483bf in x () at test.c:4
#9  0x080483bf in x () at test.c:4
(More stack frames follow...)
这也适用于负数,负数表示最外层的帧:

(gdb) bt -2
#122467 0x080483bf in x () at test.c:4
#122468 0x080483bf in x () at test.c:4

因此,如果你需要最后几帧,你可以使用负数。

我不确定我是否理解你的问题,但也许你想要像或
bt-full
?@Frédéric Hamidi:bt-full也给你局部变量、函数参数等。但他想得到比gdb通常显示的更多的帧。