编译gdb以进行远程调试

Eri*_*ric 8 debugging gnu remote-debugging compilation configure

我正在尝试远程调试在arm9上运行的应用程序

到目前为止,我已经能够在我的设备上交叉编译和执行gdbserver.

  1. 获取gdb(7.2)源并提取它们
  2. ./configure --target = arm-none-linux-gnueabi --with-expat =/usr/local/lib /
  3. 使
  4. cd gdb/gdbserver
  5. ./configure --host = arm-none-linux-gnueabi
  6. 使
  7. tftp gdbserver到我的设备
  8. 运行并通过gdb连接到设备

gdbserver"似乎"正确启动并将自己附加到我的helloworld应用程序

当我尝试gdb到远程服务器时,我得到
"警告:无法解析XML目标描述;在编译时禁用了XML支持"

显然,汇编没有考虑到外籍人士.我真的不确定如何指定配置脚本的expat库路径.

Off*_*rmo 19

(老问题,但我通过谷歌搜索同样的问题偶然发现它)

问题是缺少" expat "lib.这很难猜到,因为:

  1. 这个lib是编译gdb的可选项
  2. "expat"名称与XML没有明确的联系......

因此,安装" expat-dev "(与您的数据包管理器或任何东西),然后重新启动./configure.因为我们正在进行重新编译并需要包含文件,所以要小心安装"dev"版本.

更确切地说,可以在./configure调用中添加" --with-expat ",以便在找不到expat时它将停止并显示错误.

  • 我在安装expat-dev之前尝试了"--with-expat",配置脚本没有失败.我使用的软件包安装是"sudo apt-get install libexpat1-dev".我省略了--with-expat,但是否则是一个现场答案.谢谢您的帮助! (3认同)

Eri*_*ric 1

无论如何它还是有效的

另外,创建一个文件 ~/.gdbinit

file /home/username/path/to/exec/exec_name
set sysroot /path/to/libraries/running/on/target/device
target remote HOST:PORT
b main
Run Code Online (Sandbox Code Playgroud)