首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >控制Eclipse调试器输出?

控制Eclipse调试器输出?
EN

Stack Overflow用户
提问于 2008-11-17 15:20:32
回答 5查看 10.1K关注 0票数 8

在使用CDT时,我希望在“变量”调试窗口中显示std::string及其包含的字符串。例如,如果它当前持有“历史”一词,我希望在调试器窗口中看到历史记录标记为“变量”。

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

当我只输出一个复杂对象的字段时,这对我也很有用。

谢谢,比尔

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2008-11-17 15:44:44

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

我认为CDT将此委托给调试器后端;也就是说,这取决于您的调试器(可能是gdb?)告知CDT变量的值以及如何展开变量。

编辑:我认为CDT附带的GDB后端不支持STL容器的“智能”显示。如果您真的对此感兴趣,我建议您在CDT @eclipse.org上与cdt开发团队联系。

更新/编辑:有关如何在CDT中启用漂亮打印机的说明,请参阅下面的其他响应。

票数 1
EN

Stack Overflow用户

发布于 2009-01-26 16:15:48

用eclipse/gdb显示stl容器对我来说也是很长一段时间以来的主要痛苦。

但是现在我刚刚发现启用python的gdb的最新版本可以帮助实现这一点。

下面是我所做的(使用Ubuntu 8.10):

  • 安装gdb版本>= 6.8.50 (例如来自debian实验)
  • 在项目根目录中创建一个名为.gdbinit的文件,内容如下: python导入gdb.libstdcxx.v6.打印机

现在,stl容器将是相当打印的

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

  • 从控制台启动gdb
  • 在gdb提示符上执行以下命令 ( GDB ) python打印'Python启用的GDB正在工作!‘
  • 如果上面的命令产生我们期望的结果,那么它就工作了。

有关更多细节,请查看这个博客

票数 22
EN

Stack Overflow用户

发布于 2013-01-10 19:13:34

我想扩展Windows 7的响应,因为忽略了一些关键步骤:

这是针对使用Eclipse的MinGW用户的

0)如果您没有python GDB,打开一个shell/命令,并使用MinGW-get.exe“安装”启用Python的GDB。

代码语言:javascript
复制
   MinGw-get.exe install gdb-python

( 1a)从http://python.org/download/获取Python2.7.x并安装

确保PYTHONPATH和PYTHONHOME设置在您的环境中:

代码语言:javascript
复制
 PYTHONPATH should be C:\Python27\Lib   (or similar)
 PYTHONHOME should be C:\Python27

1c)在你的道路上增加多个项目

代码语言:javascript
复制
 %PYTHONHOME%;...

2a)打开文本输入,输入以下语句。注意,第3行指向python脚本所在的位置。请看下面关于这个的笔记!

代码语言:javascript
复制
python
import sys
sys.path.insert(0, 'C:/MinGW/share/gcc-4.6.1/python')         
from libstdcxx.v6.printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end

( 2b)另存为'.gdbinit‘注意: Windows资源管理器将不允许您命名以资源管理器的句点开头的文件。大多数文本编辑(包括记事本)将允许您。GDB init文件就像GDB命令的“脚本”,GBD将在加载时执行这些命令。

.gdbinit文件需要位于GDB的工作目录中(很可能这是您的项目根目录,但您的IDE可以告诉您。

3)打开Eclipse (或其他IDE)首选项对话框。转到C++调试器子菜单.

4)将Eclipse配置为使用C:\MinGW\bin\gdb-python27.exe作为调试器,使用.gdbinit作为配置文件。

( 5a)重新创建所有的调试启动配置(删除旧的,从头创建一个新的)。

代码语言:javascript
复制
--OR--

5b)编辑每个调试配置,并将其指向新的gdb-python.exe并将其指向。

如果你遇到问题:

--别忘了在上面的python代码中将位置更改为python目录!这个目录是由MinGW创建的,所以不要去下载漂亮的打印机,MinGW是在步骤0中为您创建的。只需转到您的MinGW安装主管,共享文件夹,GCC文件夹(有版本号),您将找到python文件夹。这个位置应该是GDB加载的python脚本中的位置。

-而且,.gdbinit是一个PITA,确保它的名称正确,并且位于GDB的工作文件夹中,这不一定是gdb-python.exe所在的位置!在加载GDB时查看GDB输出,查看加载期间是否出现了“启用python”,以及是否出现了.gdbinit中的语句。

-最后,我对系统变量有很多问题。如果python给出了“ImportError”,那么很可能您还没有设置PYTHONPATH或PYTHONHOME。

--包含“gdb-python27 27”的目录(例如C:\MinGW\bin)也应该在您的路径上,如果是的话,它会使eclipse的设置更好一些,因为您不需要放置绝对路径。但尽管如此,.gbdinit有时还是需要一条清澈的道路。如果它有效,您将在调试器启动时看到来自gbd (控制台->gdb跟踪)的输出:

代码语言:javascript
复制
835,059 4^done
835,059 (gdb) 
835,059 5-enable-pretty-printing
835,069 5^done
....
835,129 12^done
835,129 (gdb) 
835,129 13source C:\MinGW\bin\.gdbinit
835,139 &"source C:\\MinGW\\bin\\.gdbinit\n"
835,142 13^done
835,142 (gdb) 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/295836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档