【问题标题】:Eclipse CDT Custom DebuggerEclipse CDT 自定义调试器
【发布时间】:2015-12-05 03:56:10
【问题描述】:

我想扩展eclipse cdt的调试器,使其能够默认跳过指定行号的行(步骤)。

我想知道可以扩展什么来做到这一点,因为我不需要编写一个完整的新调试器,c/c++ 的功能和它一样好。

【问题讨论】:

    标签: eclipse eclipse-plugin eclipse-cdt


    【解决方案1】:

    这是一个非常广泛的问题,因此我为您提供了一些起点,以便您可以稍微缩小您的问题范围。

    DSF​​-GDB

    Eclipse 中的 C/C++ 调试器由 CDT 的 DSF(调试服务框架)提供。 DSF 是用于编写调试器的惊人但复杂的异步框架。DSF-GDB 是用于 GDB 调试器的 DSF 的实现。

    1. 我建议从DSF Tutorial 开始
    2. 尝试使用DSF-GDB自定义扩展示例插件org.eclipse.cdt.examples.dsf.gdb
    3. 看看How to extend DSF-GDB
    4. 如果您在 C 代码中有特定的行,则需要注意并使您的用户了解有关编译器优化的限制。例如如果你写:
    int x = 2
    x++;
    x++;
    

    并期望能够运行第 1 行和第 3 行并跳过第 2 行,那么您将不得不参与编译器,而不仅仅是调试器,因为编译器通常会将上述内容优化为基本上 int x = 4

    CDI 调试器

    CDI Debugger,又名旧的 pre-DSF CDT 调试器预计将在计划于 2016 年 6 月发布的 CDT 9.0 中删除。CDI 调试器与org.eclipse.cdt.debug.core.CDebugger 扩展点相关联。请参阅 CDT 联合领导 MarcDoug 以及 wiki entry 的消息。因此,不要将新的开发工作基于 CDI。

    【讨论】:

    • 你太棒了。感谢您的信息和努力。下周将进行更深入的研究。 cdt扩展点CDebugger是不是没有方向可走呢?
    • 我不确定在 examples.dsf.gdb 示例中的何处扩展?
    • 只有方法调用应该被跳过,并且只能在视觉上进行
    • 我最近贡献了一个补丁git.eclipse.org/r/#/c/61534,它准确地显示了向 DSF 添加新命令所需的操作。它尚未合并,但差异应该向您展示需要添加到 DSF 会话以添加新功能的内容。
    • 听起来您可能想做一些(大致)类似于 Run To Line 和/或 Resume At Line 的事情。我怀疑你的额外自定义逻辑,加上 DSF 中现有命令的实现内容,你应该能够实现你想要的吗?请参阅git.eclipse.org/c/cdt/org.eclipse.cdt.git/tree/dsf/…中的 ResumeAtLine、RunToLine 和 MoveToLine@
    猜你喜欢
    • 1970-01-01
    • 2014-12-07
    • 2012-06-25
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-18
    相关资源
    最近更新 更多