我正在使用 gdb 7.1 开发 ARM 系统(我也尝试过 7.5)。我正在使用这个工具来调试由几个共享库组成的应用程序。
如果我在 ARM 端调试这个应用程序,使用 gdb 7.1 我可以看到共享的加载库(数字化“共享”)。完美的!
我正在尝试在 Windows 主机上使用 gdb for arm 和在 ARM 上使用 gdbserver 远程执行相同的操作。
所以我有:1)windows上的gdb for arm v.7.4.1(我也试过7.3.1)2)arm v.7.1上的gdbserver(我也试过7.5)
在 Windows 上,我可以完美地调试除共享库之外的所有内容:事实上,当我尝试数字“共享”时,它说没有任何共享加载库。我绝对确定至少已经加载了一个库(在手臂一侧,同样的情况也可以正常工作)。
任何想法?
编辑:可能我发现了一些东西:
在 arm 上的 gcc 中,当我要求共享加载库(“share”)时,它调用函数 solib.c:info_sharedlibrary_command 并完全支持 solib。(它工作正常)
相反,当我在 windows 上的 gdb 和 arm 上的 gdbserver 上请求相同的命令时,它传递的命令“qXfer:libraries:read:”不管理任何 solib,只管理 dll!并且 dll 列表显然是空的。
我错过了什么?