gdb核心文件:交叉编译时查找共享库源路径

时间:2013-02-13 15:00:53

标签: c gdb cross-compiling gdbserver

我在交叉编译环境中使用gdb,我为目标体系结构构建了一个Linux树,包括许多共享库。

问题:当我分析核心转储时,gdb会找到我的.so文件及其符号的路径,但不会找到它们的源文件。

主机设置:

tree/< - 构建根目录

tree/apps/myapp/myapp< - 我崩溃的应用

tree/libs/mysharedlib/< - 共享库是从这样的路径构建的,并安装在target /

tree/target/< - 目标构建根

tree/target/usr/bin/< - 我崩溃的二进制文件在这里

tree/target/lib< - 某些.so:s

tree/target/usr/lib< - 还有一些.so:s

示例输出:

...
#9 0x2b038cfc in start_thread (arg=0x32dff4d0) at pthread_create.c:302
302 pthread_create.c: No such file or directory.
in pthread_create.c
...

默认情况下gdb如何知道搜索源文件的位置?

我知道可以在gdb中使用'directory'命令来指定 手动源目录,它的工作原理,但我不想这样做 每个共享库。我想设置构建我所有东西的根。 当我使用gdbserver进行实时调试时,gdb会自动查找所有共享库的源代码,因此我希望核心文件具有相同的行为。

是否只有调试信息中指定的.c文件名 二进制文件还是有路径?相对还是绝对?

0 个答案:

没有答案