控制Eclipse CDT调试器输出?

bil*_*oke 8 debugging eclipse-cdt

当使用CDT时,我想让std :: string显示在'variable'调试窗口中,并显示它包含的字符串.例如,如果它当前持有"历史"一词,我希望在调试器窗口中看到标记为"变量"的历史记录.

我认为有一种通用的方法可以让它深入到物体中,但我不能把手指放在它上面.有没有人知道怎么做?

当从复杂对象输出单个字段时,这对我来说也很有用.

比尔,谢谢

小智 22

用eclipse/gdb显示stl容器对我来说也是一个很大的痛苦.

但是现在我刚刚发现启用了python的最新版本的gdb可以帮助你.

它遵循我所做的(使用Ubuntu Linux 8.10):

  • 安装gdb版本> = 6.8.50(例如来自debian实验)
  • 使用以下内容在项目根目录中创建名为.gdbinit的文件:

    python import gdb.libstdcxx.v6.printers

现在stl容器将被打印出来.

如果你想检查你是否已经启用了python(或者你的新安装是否有效):

  • 从控制台启动gdb
  • 在gdb提示符下执行以下操作

    (gdb)python print'支持Python的GDB正在运行!'

  • 如果上面的命令产生了我们期望的东西,那么它正在发挥作用.

有关详细信息,请查看此博客.


Jes*_*erE 1

请注意,您不需要一种深入研究对象的通用方法;您需要的是一种通用的方法。您想要漂亮地打印 STL 容器。

我认为 CDT 将其委托给调试器后端;也就是说,由您的调试器(也许是 gdb?)通知 CDT 关于变量的值以及如何扩展它。

编辑:我不认为 CDT 附带的 GDB 后端对 STL 容器的“智能”显示有任何支持。如果您确实对此感兴趣,我建议您通过 cdt-dev@eclipse.org 联系 CDT 开发团队。

更新/编辑:请参阅下面的其他回复,了解如何在 CDT 中启用漂亮打印机的说明。