c++ - 调试 gcc 插件

标签 c++ gcc plugins gcc-plugins

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

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

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

我还需要做什么才能单步执行插件代码?

最佳答案

我找到了一个解决方案:

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

set follow-fork-mode child

之后(您可能不得不让它运行一次)加载符号并单步执行插件工作没有问题。

关于c++ - 调试 gcc 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59287434/

相关文章:

c - Glibc - ucontext.h 中的错误,但仅限于 -std=c11

ios - iOS 上的 Cordova 3.0 : Plugin method not being called

grails - 对Grails数据源插件使用唯一约束会导致NullPointerException

C++ Linked List -- 读取文件并根据数字对其进行排序

c++ - "void value not ignored as it ought to be"非空函数

c++ - std::wcout 将不会在一定数量的字符后打印

c++ - 有没有一种标准的方法来使用 STL 在 Linux 上使用 gcc 进行 findfirst、findnext?

plugins - Notepad++ 中是否有类似 VS Solutions 的东西

c++ - COLORREF 和 D2D1::ColorF 之间的转换

导致线程锁定的 C++ 优化