3

我目前正在为 gcc (9.2) 编写一个插件,并且正在寻找一种调试所述插件的方法。为此,我使用这些说明构建了 gcc ,以启用 gcc 的调试符号。然后我尝试通过使用以下命令在 gdb 中调用 gcc 来调试插件:

./xg++ -wrapper gdb,--args -fplugin=plugin_name.so

这导致我能够单步执行 gcc 本身,看到它的符号。但是,我无法访问插件符号。该插件使用 -g 标志编译。

我还需要做什么才能逐步完成插件的代码?

4

1 回答 1

3

我找到了一个解决方案:

g++(或本例中的 xg++)只是一个驱动程序,它调用了几个编译工具,包括实际的编译器 cc1plus 进程。因此,要确保 gdb 附加到此进程,必须在 gdb 中设置以下设置:

set follow-fork-mode child

之后(您可能只需要让它运行一次)加载符号并逐步通过插件可以毫无问题地工作。

于 2019-12-12T22:12:08.503 回答