利用QT Creator Eclipse等通过GDB调试arm linux程序

4,473次阅读
没有评论
还在用 vim 来写代码?? you are out!, 现在 linux 下的 IDE 这么优秀, 你为什么不用.

不废话 IDE 的好处了, 如果你做过 stm32 开发的话就知道一个程序如果能在线调试的话那是多么地美好. 特别是像我这样的菜鸟.
通常情况下, 芯片 SDK 里包含的交叉编译器 gdb 版本低, 并且缺失某些功能, 或是根本没有提供 gdb, 这里需要自已编译 gdb, 如果交叉编译器够新,gdb 版本够高则不需要自已编译 gdb

交叉编译 gdb

主机环境准备

首先下载 gdb:http://ftp.gnu.org/gnu/gdb/ 注: 不一定要最新版本. 像 QT5.7 要求 gdb 版本为 7.7
然后需要在主机上安装必要的支持库, 特别注意需要 python2.7-dev pythonxx-dev

sudo apt-get install build-essential cmake u-boot-tools uboot-mkimage libusb-1.0-0 libusb-1.0-0-dev git wget fakeroot kernel-package zlib1g-dev libncurses5-dev libc6:i386 lib32stdc++6 lib32z1  python2.7-dev texinfo

编译 gdb

解压 gdb, 并进入目录, 然后用 ./config 来生成 makefile 文件 …. 肯定得加参数了..
./configure --target=arm-hisiv200-linux --program-prefix=arm-hisiv200-linux- --prefix=$PWD/gdb-build --with-python
./configure --target=aarch64-linux-gnu --program-prefix=aarch64-linux-gnu- --prefix=/work/lib/gdb --with-python=/usr/bin/python3
arm-hisiv200-linux 是目标板的交叉编译器前缀. arm-hisiv200-linux- 是生成文件的前缀, 你也可以随便写. --prefix=$PWD/gdb-build 安装目录, --with-python 让 gdb 支持 python, qt 以及 vscode 调试需要这个.
config 完成后 make 再 make install, 则会在 $PWD/gdb-build这个目录中生成一些文件, 其中 arm-hisiv200-linux-gdb就是最主要的文件, 并且这个文件是在主机里运行的,qt eclipse 等就是调用的它.

特别注意: 编译好后不要移动程序的路径, 不要删除源代码目录, 狗日的 QT 调试时有绝对路径依赖.

编译 gdbserver

进行 gdb/gdbserver 目录, 再次 config
./configure --target=arm-hisiv200-linux --host=arm-hisiv200-linux
自行将 arm-hisiv200-linux 换成自已的交叉编译器前缀
make 后会生成 gdbserver 可执行文件, 这个文件在目标板上运行. 我一般是把这个文件拷贝到需要调试的程序那个目录.

在目标板上运行 gdbserver

编译好 gdbserver 后, 我们把 gdbserver 拷贝到需要调试的程序相同目录. 然后运行 ./gdbserver :1234 testprogram
其中 :1234表示 gdbserver 端口为 1234,testprogram为被调试的程序. 接下来就可以通过 qt eclipse 等链接过来进行远程 debug 了.

QT Creator 配置

构建和运行 选项里新环境就不多说了, 只要注意 debuggers 里新增的 gdb 得是新编译出来的那个 gdb.
当程序通过编译后, 选择 调试 -> 开始调试 ->attach to Running Debug server. 其中 服务器端口即 gdbserver 的端口,Override server address 为目标板的 IP, 本地可执行档则是被调试的程序. 其他可以不填, 然后点击 OK, 不出意外的话就可以进行调试了.
利用 QT Creator Eclipse 等通过 GDB 调试 arm linux 程序

eclipse 配置

不想打字了.. 只截图
利用 QT Creator Eclipse 等通过 GDB 调试 arm linux 程序
利用 QT Creator Eclipse 等通过 GDB 调试 arm linux 程序
利用 QT Creator Eclipse 等通过 GDB 调试 arm linux 程序

CMAKE 转为 eclipse 调试

在 cmake 工程中新建个目录 比如 cdt , 然后进入此目录, 运行:cmake -G"Eclipse CDT4 - Unix Makefiles" -D CMAKE_BUILD_TYPE=Debug ../
之后在 eclipse 中导入 maekfile 项目即可

正文完
 0
评论(没有评论)