我正在尝试远程调试在arm9上运行的应用程序
到目前为止,我已经能够在我的设备上交叉编译和执行gdbserver。
- 获取gdb(7.2)源代码并提取它们
- 。/configure——target=arm-none-linux-gnueabi——with-expat=/usr/local/lib/
- 使 cd gdb/gdbserver
- 。/configure——host=arm-none-linux- gneabi
- 使 tftp gdbserver到我的设备
- 运行并通过gdb连接到设备
gdbserver "seems"正确启动并连接到我的helloworld应用程序
当我尝试gdb到远程服务器时,我得到
"警告:无法解析XML目标描述;在编译时禁用XML支持"
显然,编译没有考虑expat。我真的不确定如何为配置脚本指定expat库路径。
(老问题,但我偶然发现它通过谷歌同样的问题)
问题是缺少"expat"库。这很难猜测,因为:
- 这个库在编译gdb时是可选的。
- "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