0

我有一个基于飞思卡尔 iMX6q ARM Cortex A9 处理器的 ARM 开发板。我还有一个要在板上调试的应用程序。开发板正在运行一个带有非剥离运行时库的 LTIB 文件系统。在主机上,我还下载了一个 Linaro 工具链(具体来说是软浮点 2012.04),它只有剥离的库。

我想告诉 gdb(在主机上运行)使用一组不同的运行时库(非剥离的),来自我保留在主机上的 LTIB 文件系统的映像。

我怎么做?

要求gdb给我

(gdb) show debug-file-directory

它返回一些在我的主机文件系统上甚至不存在的路径....

The directory where separate debug symbols are searched for is 
"/cbuild/slaves/oort14/crosstool-ng/builds/arm-linux-gnueabi-linux/install/lib/debug".

我什至不确定这是调整的正确变量..

更新:即使设置调试文件目录也无济于事,使用的运行时库仍在工具链路径中:

Reading symbols from /mnt/nfs_host/Linaro/gcc-linaro-arm-linux-gnueabi-2012.04-20120426_linux/arm-linux-gnueabi/libc/lib/ld-linux.so.3...(no debugging symbols found)...done.

我能做什么?感谢您的帮助

4

1 回答 1

2

使用 gdb 的set sysroot DIRECTORY命令(GDB 手册)。假设您在设备上有一份文件系统副本,其调试信息位于/LTIB_ROOT

[device]$ gdbserver --multi :2345
$ arm-linux-gnueabihf-gdb # GDB from Linaro toolchain
(gdb) set sysroot /LTIB_ROOT
(gdb) target extended-remote DEVICE-IP:2345
(gdb) set remote exec-file /bin/true
(gdb) file /LTIB_ROOT/bin/true
(gdb) start
Temporary breakpoint 1 at 0x842c: file XXX.c, line YYY.
(gdb) info sharedlibrary 
From        To          Syms Read   Shared Object Library
0x400007a0  0x4001cf80  Yes         /LTIB_ROOT/lib/ld-linux.so.3
0x40037ea0  0x4004948c  Yes         /LTIB_ROOT/lib/libgcc_s.so.1
0x40068760  0x40172b14  Yes         /LTIB_ROOT/lib/libc.so.6
于 2013-03-08T19:34:45.497 回答