最近在做代码编译迁移的时候,遇到一例,用dlopen打开动态库然后无法step进入动态库函数的问题。
最后,注意到gdb的一行调试信息: warning: Could not load shared library symbols for xxxx.
查看测试代码,发现其中使用cddir切换工作目录并加载相对目录的动态库。
将相对目录改为绝对目录后问题解决。
我猜测gdb加载symbol的策略是根据dlopen传参或者link来查找的。感觉是一个小小的bug。
最近在做代码编译迁移的时候,遇到一例,用dlopen打开动态库然后无法step进入动态库函数的问题。
最后,注意到gdb的一行调试信息: warning: Could not load shared library symbols for xxxx.
查看测试代码,发现其中使用cddir切换工作目录并加载相对目录的动态库。
将相对目录改为绝对目录后问题解决。
我猜测gdb加载symbol的策略是根据dlopen传参或者link来查找的。感觉是一个小小的bug。
转载于:https://www.cnblogs.com/smallmaple/p/7472356.html