我有一个基于飞思卡尔的iMX6q ARM Cortex A9处理器的ARM开发板。我还有一个要在电路板上调试的应用程序。开发板正在运行LTIB文件系统,其中包含未剥离的运行时库。在主机上,我也下载了一个Linaro工具链(具体来说是soft float 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".我甚至不确定这是不是可以调整的正确变量。
更新:即使设置debug-file-directory也无济于事,使用的运行时库仍然在工具链路径中:
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.我能做些什么?谢谢你的帮助
发布于 2013-03-09 03:34:45
使用gdb的set sysroot DIRECTORY命令(GDB Manual)。假设您在设备上有一个文件系统的拷贝,其中包含/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.6https://stackoverflow.com/questions/15298377
复制相似问题