1
27
您需要一个能够使用python来美化打印结构的gdb版本。我知道,至少在使用mingw的Windows上,默认安装中没有提供该选项。 漂亮的打印机是告诉gdb如何显示给定结构的python模块。你可以自己写,但已经有STL打印机可供下载。 要让漂亮的打印机在Windows上工作(其他操作系统的说明应该类似): 先决条件
安装:
Eclipse设置
就是这样,像正常的调试一样,STL结构应该更容易阅读。 |
2
21
嗯,gdb本机不支持stl容器。你不能说这是错误的,因为它将暴露STL对象的内部工作,但大多数时候它不是我们想要的,对吗? 如果你使用的是GDB7.0,你可以利用漂亮的打印机。本网站 http://sourceware.org/gdb/wiki/STLSupport 有一个关于如何设置它们的非常简单的教程。我把你感兴趣的部分抄在下面:
因为您使用的是EclipseCDT,所以不要忘记将调试配置指向.gdbinit文件。创建新的调试配置时,请转到“调试器”选项卡,并将.gdbinit文件的路径放在“gdb命令文件”字段中。 希望有帮助! |
3
10
在“调试”视图的“变量”列表中,展开向量:
然后右键单击
|
4
8
如果你有
很久以前,我也碰到了你同样的问题。检查STL容器很痛苦。然后我找到了那个链接并添加到
注:
我的
|
5
5
我想在Windows 7响应上展开,因为有些关键步骤被省略了: 这是为带有EclipseCDT的mingw用户提供的0)如果没有python gdb,请打开shell/命令并使用mingw-get.exe“安装” 启用了python的gdb,例如
1a)从中获取python 2.7.x http://python.org/download/ 安装 1b)确保在您的环境中设置了pythonpath和pythonhome:
1c)在你的道路上添加pythonhome
2a)打开文本输入,输入以下语句。注意第三行是 指向Python脚本所在的位置。请参阅下面的注释!
2b)另存为“.gdbinit”注意:Windows资源管理器不允许您命名以 使用资源管理器中的句点。大多数文本编辑(包括记事本)都会允许您。GDB初始化 文件类似于gdb命令的“脚本”,gbd将在加载时执行这些命令。 2c)“.gdbinit”文件需要位于gdb的工作目录中(很可能是 您的项目根目录,但您的IDE可以告诉您。 3)打开Eclipse(或其他IDE)首选项对话框。转到C++调试器子菜单。
4)配置Eclipse使用
5a)重新创建所有调试启动配置(删除旧配置并从头创建新配置)。
5b)编辑每个调试配置并将其指向新的gdb-python.exe并将其指向。 如果遇到问题:--不要忘记在上面的python代码中将位置更改为python目录! 这个目录是明格创建的,所以不要去下载漂亮的打印机,明格 在第0步为你做的。只需转到Mingw Install Director共享文件夹, gcc文件夹(有版本号),您将找到python文件夹。这个位置是什么 应该在gdb加载的python脚本中。 --另外,.gdbinit是一个pita,请确保它的名称正确,并在gdb的工作文件夹中 这不一定是gdb-python.exe所在的位置!加载gdb时查看gdb输出,查看在加载过程中是否出现“python enabled”,以及.gdbinit中的语句是否出现。 --最后,我有很多关于系统变量的问题。如果python给您“importerror”,那么很可能您没有设置pythonpath或pythonhome。 --带有“gdb-python27”的目录(例如c:\mingw\bin)也应该在您的路径上,如果是,它会使设置Eclipse更好一些,因为您不需要放置绝对路径。但是,有时.gbdinit需要一条绝对的道路。如果它正常工作,您将在启动调试器时看到gbd(console->gdb traces)的输出,如下所示:
|
6
2
我知道JDT(Eclipse中的Java环境)提供了在调试视图中显示变量值时应用的自定义“格式化程序”。在CDT中快速浏览谷歌也会看到以下页面: http://wiki.eclipse.org/CDT/Better_Debugging_%28GSoC_project%29 我不知道这是否已经集成在主CDT行中,可能是您可以在调试时(在最后一个CDT中)尝试右键单击一个变量,并查看是否有自定义格式化程序条目。如果不可用,我建议您在CDT跟踪器中添加一个新的跟踪器条目以询问此增强功能。 |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
rainer · 后台插入程序的初始化 1 年前 |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |