我在执行应用程序时获得了一个核心,并保存了可执行文件,核心文件和应用程序在/tmp
中使用的共享库,以便稍后检查它们。然后我修改了库,重建了它并再次启动了可执行文件。
现在,当我尝试调试核心时,gdb正在从其原始路径加载共享库,而不是从保存原始库的目录/tmp
加载。
例如,原始路径为/opt/mydir/lib/libmylib.so.0
。
gdb正在加载此共享库,而我希望它加载/tmp/libmylib.so.0
。
该应用程序还使用了/usr/lib
和/lib
目录中的一些标准库,因此我不希望这些路径发生变化。只想更改/opt/mydir/lib/
- > /tmp
。我怎么能这样做?
答案 0 :(得分:3)
最简单的解决方案是暂时将IPC
恢复到崩溃时使用的副本(即现在位于/opt/mydir/lib/libmylib.so.0
中),分析核心,然后恢复回到新版本。
如果您不想这样做,/tmp
和set solib-search-path
为your friends。
请注意,您必须在加载set sysroot
之前设置两者。这个顺序应该有效:
core