0

我想知道如何调试so文件的内部源。我有一个 so 文件,我使用 dlopen() 打开它,然后我使用 dlsym() 加载该方法。现在,我使用带有 -g 标志的 g++ 工具来编译它。它工作得很好,但是我无法通过使用 gdb 命令“next”进入 so 源。

4

2 回答 2

1

如果所有代码都是用编译的-g(并且包括dlopen-ed 共享对象.so文件的代码和 main dlopen-ing 程序的所有代码),那么您可以 使用(甚至在其中添加断点)进入插件的函数gdb)。

使用最新版本GCC 编译器(例如 4.8)和GDB 调试器(例如7.6)可能很有用。两者在这些方面都有显着改善,最近。

于 2013-11-01T07:40:15.997 回答
1

您似乎混淆了运行 gdb 的两种不同方式。这是一个解释如何迭代源代码的链接。

http://sourceware.org/gdb/onlinedocs/gdb/Continuing-and-Stepping.html

于 2013-11-01T06:08:02.347 回答