编译gdb用于远程调试



我正在尝试远程调试在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- gneabi
  6. 使
  7. tftp gdbserver到我的设备
  8. 运行并通过gdb连接到设备

gdbserver "seems"正确启动并连接到我的helloworld应用程序

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

显然,编译没有考虑expat。我真的不确定如何为配置脚本指定expat库路径。

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

问题是缺少"expat"库。这很难猜测,因为:

  1. 这个库在编译gdb时是可选的。
  2. "expat"名称与XML没有明确的联系…

所以安装"expat-dev"(用你的包管理器或任何东西),然后重新启动./configure。注意安装"dev"版本,因为我们正在重新编译,需要包含文件。

为了更加确定,可以在中添加"——with-expat"。/configure call,使其在expat未找到时停止并显示错误。

不管怎样,它还是成功了

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

file /home/username/path/to/exec/exec_name
set sysroot /path/to/libraries/running/on/target/device
target remote HOST:PORT
b main

最新更新