【问题标题】:Netbeans print debug value C / C++Netbeans 打印调试值 C/C++
【发布时间】:2010-11-09 03:25:43
【问题描述】:

我有兴趣使用 Netbean 的 C 和 C++ 项目的默认 GDB 调试器以特定方式显示结构/类对象,以便我可以更快地单步执行代码。对于 Java,有一种简单的方法可以使用工具 -> 选项 -> 杂项 -> 变量格式化程序下的“变量格式化程序”部分来执行此操作。我正在为 C / C++ 寻找类似的东西。有这种方法吗?

编辑:为了澄清我的问题,在调试器变量标签中有一个“值”列。我希望将此表示为来自对象的调用,例如printf("%s", MyObject.getHeight());

【问题讨论】:

    标签: c++ c debugging netbeans printing


    【解决方案1】:

    我相信您所寻找的可以使用 gdb 的 Python 漂亮打印功能来完成,如下所述:

    https://sourceware.org/gdb/current/onlinedocs/gdb/Pretty-Printing.html#Pretty-Printing https://sourceware.org/gdb/current/onlinedocs/gdb/Pretty-Printing-API.html#Pretty-Printing-API

    使用 Python 漂亮的打印机制,您可以控制 gdb 如何将给定类型的值呈现给 NetBeans。我自己使用它来为我自己的类在“变量”选项卡中自定义显示。它需要一点阅读和一点点 Python 知识,但是一旦你掌握了它,它就会非常强大,绝对值得学习。

    【讨论】:

      【解决方案2】:

      我对 Netbeans 的了解不足以帮助您使用宏来执行此操作,但也有一个更简单的解决方案:

      • 让调试器访问一个变量(在 C++ 类中设为“公共”而不是私有)

      • 在您的程序中添加以下代码:int height = MyObject.getHeight();这样您就可以在调试器中显示该变量。

      事情通常是通过简化问题来完成的。

      【讨论】:

      • 虽然第二点是一个解决方案,但它对我的问题没有帮助。如果一个对象只有一个实例我不介意,但整个程序有数百个,我不想修改源代码。您能详细说明第一个要点吗?我可以让调试器以始终显示在该值字段中的方式访问此变量吗?
      猜你喜欢
      • 1970-01-01
      • 2018-11-02
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-15
      • 2016-11-30
      相关资源
      最近更新 更多