环境
主机:Ubuntu 16.04
目标:qemu vexpress-a9
gdb:8.2
下载编译gdb
下载 gdb-8.2.tar.xz
编译
$ cd gdb-8.2
$ ./configure --help #查看配置选项
$ ./configure --target=arm-linux --prefix=/usr/local/arm-gdb
$ make --help #查看编译选项
$ make
$ sudo apt-get install texinfo #在make install报错,提示缺少texinfo时安装
$ make install
添加环境变量
vim ~/.bashrc
添加以下内容到.bashrc文件
export PATH="/usr/local/arm-gdb/bin:${PATH}"
测试
打开终端,输入以下命令启动qemu模拟器
qemu-system-arm -M vexpress-a9 -m 512M -kernel zImage -dtb vexpress-v2p-ca9.dtb -sd sdcard.img -gdb tcp::1234 -S -nographic -append "init=/linuxrc root=/dev/mmcblk0p2 rw rootwait earlyparintk console=ttyAMA0"
打开新终端,输入以下命令进行远程调试
$ arm-linux-gdb -tui #tui选项使用图形界面
(gdb) file vmlinux
(gdb) target remote :1234
(gdb) b start_kernel
(gdb) c