在使用CDT时,我希望在“变量”调试窗口中显示std::string及其包含的字符串。例如,如果它当前持有“历史”一词,我希望在调试器窗口中看到历史记录标记为“变量”。
我认为有一种一般的方法可以让它深入到物体中,但我不能把手指放在上面。外面有人知道怎么做吗?
当我只输出一个复杂对象的字段时,这对我也很有用。
谢谢,比尔
发布于 2008-11-17 15:44:44
请注意,您的不希望需要一种深入对象的通用方法;您希望漂亮地打印STL容器。
我认为CDT将此委托给调试器后端;也就是说,这取决于您的调试器(可能是gdb?)告知CDT变量的值以及如何展开变量。
编辑:我认为CDT附带的GDB后端不支持STL容器的“智能”显示。如果您真的对此感兴趣,我建议您在CDT @eclipse.org上与cdt开发团队联系。
更新/编辑:有关如何在CDT中启用漂亮打印机的说明,请参阅下面的其他响应。
发布于 2009-01-26 16:15:48
用eclipse/gdb显示stl容器对我来说也是很长一段时间以来的主要痛苦。
但是现在我刚刚发现启用python的gdb的最新版本可以帮助实现这一点。
下面是我所做的(使用Ubuntu 8.10):
现在,stl容器将是相当打印的。
如果您想检查是否已经启用了python,gdb (或者您的新安装是否有效):
有关更多细节,请查看这个博客。
发布于 2013-01-10 19:13:34
我想扩展Windows 7的响应,因为忽略了一些关键步骤:
这是针对使用Eclipse的MinGW用户的
0)如果您没有python GDB,打开一个shell/命令,并使用MinGW-get.exe“安装”启用Python的GDB。
MinGw-get.exe install gdb-python( 1a)从http://python.org/download/获取Python2.7.x并安装
确保PYTHONPATH和PYTHONHOME设置在您的环境中:
PYTHONPATH should be C:\Python27\Lib (or similar)
PYTHONHOME should be C:\Python271c)在你的道路上增加多个项目
%PYTHONHOME%;...2a)打开文本输入,输入以下语句。注意,第3行指向python脚本所在的位置。请看下面关于这个的笔记!
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)重新创建所有的调试启动配置(删除旧的,从头创建一个新的)。
--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跟踪)的输出:
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) https://stackoverflow.com/questions/295836
复制相似问题