1.下载gdb源码:
http://ftp./gnu/gdb/
2.编译arm-linux-gbd
解压后进入gdb-XX目录下:
./configure --target=arm-linux
make(生成gdb)
make
install(生成arm-linux-gdb,并存入/usr/local/bin/)
3.编译gdbserver
进入gdb-XX/gdb/gdbserver/目录下:
./configure --target=arm-linux
--host=arm-linux
修改config.h:注释掉//#define HAVA_SYS_REG_H这行
修改Makefile:找到“CC = gcc”这行,改为“CC
=/usr/local/arm/2.95.3/bin/arm-linux-gcc”(交叉编译器所在路径)
make(生成gdbserver在当前目录下)
检查编译完的gdbserver是否是for arm平台:执行file
gdbserver是否看到“ELF 32-bit LSB executable, ARM, version 1,
dynamically linked (uses shared libs), for GNU/Linux 2.0.0, not
stripped”
4.把gdbserver烧到arm板上
运行minicom在shell下执行:./gdbserver /dev/ttyS1 app
-display :0 &
PC机shell下执行:./arm-linux-gdb -b 38400 app
握手:target remote /dev/ttyS0
握手成功后c,开始调试。
注:ttyS1为目标机上的gdbserver和pc机上的arm-linux-gdb通讯端口;ttyS0为控制台端口。
问题收集:
1.出现“No symbol table is loaded. Use the "file"
command.”表示编译app应用程序时没加-g调试信息选项导致无法load符号表。
2.出现”cannot execute binary
file“表示编译gdbserver时平台交叉编译器配置不对,提示无法执行二进制文件,可用“file
gdbserver”查看执行平台信息。
|