宿主机
使用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