gdbserver远程调试工具

gdbserver远程调试工具

(一)下载gdb-7.8.1.tar
http://ftp.gnu.org/gnu/gdb/gdb-7.8.1.tar.xz?TPSecNotice

(二)gdbserver交叉编译

(1)配置交叉编译环境
export CROSS_COMPILE=arm-xilinx-linux-gnueabi-
export PATH=/home/cyg/qtcompile/arm-xilinx-linux-gnueabi-4.9.2/bin/:$PATH

编译gdbserver,此步注意:需要进如gdbserver文件夹下,在外边会出现Makefile:10927: recipe for target ‘configure-gdb’ failed
cd gdb/gdbserver

(2)命令行执行该命令,会在server/bin文件夹下生成arm-xilinx-linux-gnueabi-gdbserver,注:prefix为安装位置绝对路径
./configure --target=arm-xilinx-linux-gnueabi --target=arm-xilinx-linux-gnueabi --host=arm-xilinx-linux-gnueabi --prefix=/media/sf_Share/gdb-install/server
执行
make -j&&make install

(3)gdb交叉编译,在gdb-7.8.1文件夹下执行以下命令,远程调试可以跳过此步,建议使用gdb-multiarch
./configure --target=arm-xilinx-linux-gnueabi --disable-tui --prefix=/media/sf_Share/gdb-install
执行
make -j&&make install

(4)安装gdb-multiarch:
apt-get install gdb-multiarch

(三)移植:
将arm-xilinx-linux-gnueabi-gdbserver拷贝到可执行文件路径下,或者其他位置写入环境变量中。

(四)此时虚拟机上已经可以远程调试电路板程序:
(1)虚拟机上交叉编译arm程序,并将程序移植到arm板
(2)arm板:
命令行执行./arm-xilinx-linux-gnueabi-gdbserver 192.168.1.102:10001 pdapp -qws
192.168.1.102为目标虚拟机ip,10001为自定端口号,pdapp为需要调试程序
执行结果如下:
在这里插入图片描述

(3)虚拟机命令行调试(建议使用Qtcreater,跳过此步,见(4)):
命令行执行 gdb-multiarch pdapp
结果如下:
gdbserver远程调试工具_第1张图片

此时输入(gdb) target remote 192.168.1.101:10001
注:192.168.1.101为电路板ip,10001为电路板调试端口号
执行结果:
电路板上可以看到
在这里插入图片描述

现在可以开始设置断点调试了。

(4)Qtcreater配置
打开Qtcreater,工具栏打开tools -> options ,并添加设备
gdbserver远程调试工具_第2张图片

选择Generic Linux Device,并按照提示填写arm板ip,用户名,密码,点击next,结果如下:
gdbserver远程调试工具_第3张图片

通常该问题由端口号错误引起,默认ssh端口号使用的是22,修改ssh port,并点击Test
gdbserver远程调试工具_第4张图片

此时显示测试成功
gdbserver远程调试工具_第5张图片

点击Debugger,选择Debugers配置gdb-multiarch
gdbserver远程调试工具_第6张图片

点击Kits,添加编译配置,配置如下
gdbserver远程调试工具_第7张图片

点击Apply并关闭此界面。

(五)开始调试:
(1)交叉编译的程序放入arm板
(2)Arm板上操作同(2)
(3)工具栏打开 Debug -> Start Debugging -> Attach to running Debug server,配置如下,注意标红内容,必须填写,不然会出现vMustReplayEmpty错误。
gdbserver远程调试工具_第8张图片

点击ok,进入调试,此时已经可以打断点调试。

你可能感兴趣的:(arm调试)