gdb使用了错误的库,但声明了sysroot

时间:2012-04-18 08:18:49

标签: debugging gdb cross-platform

我与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?

1 个答案:

答案 0 :(得分:0)

有一个gdb错误跟踪同一个问题http://sourceware.org/bugzilla/show_bug.cgi?id=13989

直到版本gdb-7.4才会修复。因此,我认为以前的版本会出现这种情况。