Tips:GDB调试运行地址与链接地址不一致

Tips:GDB调试运行地址与链接地址不一致

一般情况下,我们调试的目标文件链接地址与运行地址是一致的,这时可以使用

gdb --tui filename

或者进入gdb后,使用file命令进行加载

file filename

加载后,GDB中实际运行地址与符号表链接是正常的

如果遇到运行地址和链接地址不一致,就不能采用上述方法加载,否则会造成GDB根据运行地址链接的符号表不一致,导致不能单步调试。此时可以使用下列命令

add-symbol-file filename text段起始地址 -s .text.boot text.boot段起始地址 -s .rodata rodata段起始地址

其中:

text段起始地址

text.boot段起始地址

rodata段起始地址

可以通过具体编译器的readelf -S filename来读取

NOTE:读取到的地址为段链接地址,根据链接起始地址,计算出各段偏移,再加上运行起始地址,就是各段实际起始地址

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值