gdb远程调试--动态加载符号文件

本文介绍了如何通过gdbserver在宿主机上远程调试目标进程,并详细讲解了如何在客户端利用gdb动态加载符号文件,特别是计算代码段起始地址的方法,以及如何使用add-symbol-file命令加载不同段的符号信息。
摘要由CSDN通过智能技术生成


宿主机
使用gdbserver  --attach 0.0.0.0:port(端口任意指定)  pid

客户端 

1、执行gdb (使用交叉编译环境的gdb arm-linux-gdb) 
2、在gdb命令行中  target remote  ip:port
这时候可能要调试的模块没有符号表,需要动态加载符号表,适合调试没有符号信息的设备环境
3、add-symbol-file
add-symbol-file FILE ADDR [-s <SECT> <SECT_ADDR> -s <SECT> <SECT_ADDR> ...]
Load the symbols from FILE, assuming FILE has been dynamically loaded.
ADDR is the starting address of the file's text.
The optional arguments are section-name section-address pairs and
should be specified if the data and bss segments are not contiguous
with the text.  SECT is a section name to be loaded at SECT_ADDR.

FILE:编译好的带调试信息的debug文件
ADDR:代码段的起始地址
如何计算代码段的起始地址:
1、使用objdump -h libxx.so  或者 readelf -S libxx.so  .text 表示代码段
Section Headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值