首页 > 其他分享 >GDB调试Core文件出现问号?的原因

GDB调试Core文件出现问号?的原因

时间:2023-02-16 23:55:17浏览次数:55  
标签:Core 0x100000000 gdb rbp GDB rsp 问号

函数的调用其实是函数的入栈出栈操作,但当程序栈因程序的错误导致破坏了栈,这时候就会导致gdb解析core文件时解析不出来的情况,即是问号(?)

那还能做点什么呢?

可以通过打印\(rbp\)和\(rsp\)的值得到最后调用栈的栈底和栈顶。

(gdb) p $rbp
$40 = (void *) 0x7fffffffdff0
(gdb) p $rsp
$41 = (void *) 0x7fffffffdfe0
(gdb) x /8ag $rbp
0x7fffffffdff0:	0x7fffffffe010	0x400673 <b(int, char**)+46>
0x7fffffffe000:	0x7fffffffe118	0x100000000
0x7fffffffe010:	0x7fffffffe030	0x400695 <main(int, char**)+32>
0x7fffffffe020:	0x7fffffffe118	0x100000000
(gdb)

但如果这个地址间的数据也被破坏了,可以以此地址为基准,继续往上找,找到其他函数的栈信息(即栈回溯方法)

参考:https://blog.csdn.net/mseaspring/article/details/106346247

标签:Core,0x100000000,gdb,rbp,GDB,rsp,问号
From: https://www.cnblogs.com/whiteBear/p/17128719.html

相关文章