2

我使用 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': 未知的共享库架构与目标架构 arm 不兼容。\n"
102,416 =library-loaded,id="/usr/lib/libfreetype.so .6",target-name="/usr/liblibfreetype.so.6",host-name="/usr/lib/libfreetype.so.6",symbols-loaded="0",thread-group="i1 "

GDB仍然使用主机 rootfs 库的原因,一旦在工具链中找不到,并且在主机 rootfs 中可用。它不关心我用set solib-search-path声明的附加路径

我用 --with-sysroot 配置了 GDB,声明了额外的set sysroot ,set solib-search-pathset solib-absolute-path(没关系 set sysroot 的别名

在文档中,--prefix将 GDB 配置为自动获取 sysroot,但为什么这比--with-sysroot更高?

GDB 是否使用命令sysroothost- sysroot 、solib-search-path

我想告诉 GDB 什么,不要使用主机 rootfs

4

1 回答 1

0

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

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

于 2013-03-10T03:37:11.203 回答