有时会出现一些小的堆栈损坏,导致gdb无法执行"回溯",我创建了下面的gdb宏(x86-64,可以很容易地为x86工作),这取决于关闭省略帧指针( ie -fno-omit-frame-pointer)并显示回溯中的函数.但是,我希望它也显示参数值,理想情况下可以选择其中一个帧.(例如"frame 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1017 次 |
| 最近记录: |