当我在一个coredump上使用gdb时,它会报告一些.so文件,它在某个路径中找不到。例如:gdb中的命令与dbx中的路径映射相同吗?
符号文件未找到/root/a/xx.so
我没有管理员权限创建在根目录,但我确实有xx.so,在dbx中,我可以使用路径映射更改可以继续调试的路径。但在gdb中我找不到相同的命令。
另外,我没有权利更改编译器命令。也就是说,我无法更改链接器路径来重新编译。
当我在一个coredump上使用gdb时,它会报告一些.so文件,它在某个路径中找不到。例如:gdb中的命令与dbx中的路径映射相同吗?
符号文件未找到/root/a/xx.so
我没有管理员权限创建在根目录,但我确实有xx.so,在dbx中,我可以使用路径映射更改可以继续调试的路径。但在gdb中我找不到相同的命令。
另外,我没有权利更改编译器命令。也就是说,我无法更改链接器路径来重新编译。
听起来像是你想要set solib-search-path
,当在sysroot
中搜索失败时,它以冒号分隔的目录名列表来搜索共享库。
相关命令set sysroot
(又名set solib-absolute-prefix
)允许您将任何目录设置为用于使用绝对路径名加载库的根目录,但是您需要确保这些库位于正确的目录结构下新的根,听起来像你不想这样做。
您可以尝试dir
命令更改为文件的位置。
你正在寻找的命令是
set substitute-path <from> <to>
是否有可能创建核心的计算机上运行GDB? –
不,它来自一个生动的网站,不能在实验室中被重新编码。 – yiweng
好的,但你说你有一个由机器生成的核心文件 - 是不是很容易在那里安装gdb并检查它 - 因为gdb在生产机器上的开销很小。 –