我与GDB运行交叉调试会话。 GDB配置了选项--with-sysroot,如何在文档中描述。我的应用程序使用如下的共享库。
代码:
libpthread.so.0 => /lib/libpthread.so.0 (0x40026000)
libm.so.6 => /lib/libm.so.6 (0x40046000)
libdl.so.2 => /lib/libdl.so.2 (0x400b9000)
librt.so.1 => /lib/librt.so.1 (0x400c4000)
libts-0.0.so.0 => /usr/lib/libts-0.0.so.0 (0x400d3000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x4015f000)
libz.so.1 => /usr/lib/libz.so.1 (0x401d3000)
libjpeg.so.8 => /usr/lib/libjpeg.so.8 (0x401ee000)
库pthread,libdl,...在我的工具链中找到,由 set sysroot , - with-sysroot 和 set solib-absolute声明-path 库libts,libz,...在我的共享库的附加路径中可用,在与 set solib-search-path 的会话中声明
对于库libfreetype,libjpeg发生以下错误:
102,416&"警告:`/usr/lib/libfreetype.so.6' ;:未知的共享库架构与目标架构部门不兼容。\ n"
102,416 =库加载,id =" /usr/lib/libfreetype.so.6" ;, target-name =" /usr/liblibfreetype.so.6" ;, host-name = #&34; /usr/lib/libfreetype.so.6",符号加载=" 0",线程组=" I1"
GDB 仍然的原因是主机rootfs的库,一旦在工具链中找不到,并且在主机rootfs中可用。它并不关心用 set solib-search-path
声明的附加路径我使用--with-sysroot配置了GDB,声明了附加的 set sysroot , set solib-search-path , set solib-absolute-path (从未设置 set sysroot 的别名)。
在文档中, - prefix 将GDB配置为自动获取sysroot,但为什么它比 - with-sysroot 更高?
GDB是使用 sysroot , host-sysroot , solib-search-path 的订单?
我错过了告诉GDB,而不是使用主机rootfs?
答案 0 :(得分:0)
有一个gdb错误跟踪同一个问题http://sourceware.org/bugzilla/show_bug.cgi?id=13989
直到版本gdb-7.4才会修复。因此,我认为以前的版本会出现这种情况。