gdb通过步行帧指针回溯

时间:2014-06-11 10:48:03

标签: linux gdb

有时会出现一些小堆栈损坏导致gdb无法执行"回溯",我创建了以下gdb宏(x86-64,可以很容易地为x86工作),这取决于关闭省略帧指针(即-fno-omit-frame-pointer)并向我显示回溯中的函数。但是,我希望它也能显示参数值,并且理想情况下能够选择其中一个帧。 (例如"帧0x0123456789ABCDEF")。

define et
set $frameptr = $rbp
while $frameptr != 0
 set $oldbp = *((void**)($frameptr+8))

 print $frameptr
 print $oldbp
 info symbol $oldbp

 set $frameptr = *((void**)($frameptr))
 end
end

0 个答案:

没有答案