我在 linux 中使用 GDB 进行调试,但是在调试时它正在从某个库中加载符号。
我怎样才能告诉 GDB 从我的库中加载符号呢?
我怎样才能告诉 GDB 从我的库中加载符号呢?
当您拥有使用调试信息构建的共享库的副本以及安装在系统上的该库的剥离副本时,通常会出现这种需求。解决方案是使用add-symbol-file
命令。
但是,您很可能不在上述情况下,您真正要问的是“我怎样才能让程序(而不仅仅是 GDB)使用我的库副本而不是系统安装的库? "
如果是这样,答案是使用-Wl,-rpath=/my/lib
(其中/my/lib
包含libfoo.so
)重建您的可执行文件,或者设置LD_LIBRARY_PATH=/my/lib
. 这将导致您的程序/my/lib/libfoo.so
在运行时使用,并且 GDB 将自动从中加载符号。