2010-11-09 80 views
0

我有兴趣使用Netbean的默认GDB调试器为C和C++项目以特定的方式显示结构/类对象,这样我就可以更快地完成代码。对于Java,使用工具 - >选项 - >其他 - >变量格式化程序下的“变量格式化程序”部分可以轻松地完成此操作。我正在寻找类似于C/C++的东西。这种方法存在吗?Netbeans打印调试值C/C++

编辑:为了澄清我的问题,在调试器变量标签中有一个“值”列。我谨代表这是从对象的调用,例如printf("%s", MyObject.getHeight());

回答

0

我不知道Netbeans的足够帮助你用宏来做到这一点,但有一个简单的解决方案,无论是:

  • 让调试器访问一个变量(由“公”,而不是私人在你的C++类)

  • 在程序中添加以下代码:INT高= MyObject.getHeight();所以你可以在调试器中显示变量。

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

+0

虽然第二点是解决方案,但它并没有帮助我的问题。如果只有一个对象实例我不介意,但整个程序中有数百个,我不想修改源代码。你能否详细说明第一个要点?我可以让调试器以某种方式访问​​此变量,以始终显示在该值字段中吗? – Ryan 2010-11-09 13:14:30

2

我相信你在找什么可以用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。我自己使用这个来自定义显示,在Variables选项卡中,为我自己的类。它需要一点阅读和一点Python知识,但是一旦你掌握了它的知识,它就非常强大,而且绝对值得学习。