【问题标题】:Debugging a gcc plugin调试 gcc 插件
【发布时间】:2020-04-04 19:58:41
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: c++ gcc plugins gcc-plugins


    【解决方案1】:

    我找到了解决办法:

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

    set follow-fork-mode child
    

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

    【讨论】:

    • 我做了同样的事情,但不知何故,当使用xg++ 完成插件时,它会抛出“找不到#include `。你碰巧知道如何解决这个问题吗?谢谢!
    • 使用 xg++ 或 xgcc 编译时,您必须使用 -B 标志提供构建 gcc 的路径。你这样做吗?
    猜你喜欢
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    • 1970-01-01
    • 2012-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多