让mingw gdb支持STL,并自动load .gdbinit

环境要求:python (2.7版本可以,3.x没测过),mingw官方版(你可能已经有了),gdb2013-02-04(到这里https://code.google.com/p/qp-gcc/downloads/list下载,如果有更新版本,应该也可以,目前2013-02-04是最新版)

推荐的GDB支持STL的方式是用python script。据说各方面都比那个stl-views-1.0.3.gdb要好(关于这个,可以参考http://blog.csdn.net/someonea/article/details/2979369

目前mingw官方的GDB是7.6.1,不支持python script。检查其是否支持python脚本的方法是:在gdb终端输入:

python print sys.version

如果打印出版本号,就OK,否则,会说该版本gdb不支持

https://code.google.com/p/qp-gcc/downloads/list  这个链接里的GDB是支持python的,你可以下载下来,加到PATH环境变量中的最前端,这样以后从cmd启动就会默认用这个gdb(因为貌似系统读PATH变量是从左向右读的,找到第一个就结束)

然后在终端运行gdb,输入python print sys.version来验证一下

然后把下面这段代码保存到pp.gdb里(理论上,任何目录都可以,但是推荐放在个人目录下,如C:\Users\your_username,或者工作目录下,两个地方都放一份也OK)

python
import sys
sys.path.insert(0, ‘c:/MinGW/share/gcc-4.7.2/python/libstdcxx/v6‘)
from printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end

注意,上面的目录要根据你实际情况来改,比如,我的是

sys.path.insert(0, ‘D:/MinGW/share/gcc-4.8.1/python/libstdcxx/v6‘)

然后,当你启动gdb之后,可以在gdb终端输入source pp.gdb(如果放在个人目录,可能要加上目录前缀),就会加载这里的设置,就可以看STL的内容了

但是,每次启动都输入一次这个命令还是有点麻烦,我们可以把这句命令放到.gdbinit里,让gdb启动时自动加载

我发现把.gdbinit放到当前工作目录、gdb.exe所在目录都不行,一个可行的方法是:

把.gdbinit放到个人目录,如C:\Users\your_username,把pp.gdb放到相同目录,.gdbinit的内容就是source pp.gdb

然后把windows的环境变量HOME设置为C:\Users\your_username(在我的电脑上,这个环境变量原来是不存在的,你的可能也是如此)

这样就可以了,以后启动gdb时,就会自动加载.gdbinit,也就自动可以用python脚本来打印STL的内容了,使用方法和打印普通变量相同,就是p variable_name

参考:

http://wiki.codeblocks.org/index.php?title=Pretty_Printers

https://sourceware.org/gdb/wiki/STLSupport

让mingw gdb支持STL,并自动load .gdbinit,布布扣,bubuko.com

时间: 2024-07-30 13:35:12

让mingw gdb支持STL,并自动load .gdbinit的相关文章

VELT-0.1.5开发:中断MinGW gdb的执行

VELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Linux开发.利用这个插件,将可以在visual studio的IDE中进行Linux应用程序的开发(包括编译和调试),也可以进行uboot和linux内核的编译,并根据编译时的错误信息正确定位到源码.目前的版本是0.1.4,仅支持vs2013.此插件可以在CSDN下载频道下载(http://download.csdn.net/detail/lights

VELT-0.1.3开发: MinGW gdb的一个奇怪问题

快乐虾 http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651) 欢迎转载,但请保留作者信息 VELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Linux开发.利用这个插件,将可以在visual studio的IDE中进行Linux应用程序的开发(包括编译和调试),也可以进行uboot和linux内核的编译,并根据编译时

A20 sugar-standard 版本无法支持U盘自动挂载问题解决

前面硬件工程师在sugar-standard的基础上搞了个什么USB HUB的线路<我不是很明白>,但是这个时候的sugar-standard 依然能自动挂载U盘. 后面他又把USB接口的东西给弄成了 A20 sugar-cubieboard 2 的版本,于是这个时候原来的img烧进去,U口就没有任何反应,只有一个口能使用鼠标. 经过查资料得知:android系统自动挂载U盘,与一个叫 vold.fstab的文件有关. 于是在公司自己的源码  android/ 目录下   find ./ -n

gdb 支持 c++ stl 调试

http://www.yolinux.com/TUTORIALS/src/dbinit_stl_views-1.03.txt 将网页的文本保存到 ~/.gdbinit 之后就可以用 p 指令查看stl容器中的内容了 # # STL GDB evaluators/views/utilities - 1.03 # # The new GDB commands: # are entirely non instrumental # do not depend on any "inline"(s

Windowns下远程调试Linux下程序(MinGW+GDB+SlickEdit+GDBServer)(有待完善)

前言: 本文思路来自嵌入式开发,Linux下远程调试开发板.废话不多说,开始吧!! Windown端: 一.下载和解压MiniGW, 从官网下载MiniGW,解压.(本例放在C:\) 二.下载和解压GDB:下载地址为:http://ftp.gnu.org/gnu/gdb/(本文以gdb-7.2为例,放在C:\) 三.在Windowns下编译GDB 运行C:\MinGW\msys\1.0\msys.bat $ cd c: $ cd gdb-7.2 $./configure --target=i68

使用linux的GDB打印STL(vector,map,set..................)

在linux用gdb或者cgdb计较不爽的地方是无法打印STL的东西,所有啊去网上找了找解决方案https://www.douban.com/note/182826844/?qq-pf-to=pcqq.c2c 本帖把怎么配置这个东西写出了,万一以后忘了,可以回头找找. 首先是下载gdb文件 https://sourceware.org/gdb/wiki/STLSupport    ------>找到网页里面的  然后点击进去下载stl_views_1.0.3.gdb 接下来把这个东西当到linu

windows 7(x64)下Eclipse(x64)+jdk(x64)+CDT+MinGW+gdb的环境配置

买了2年的电脑,装了一大堆软件,不算工作空间里的,光软镜有有100G,开机2分多,我这还是顶配呢,受不了受不了,果断重装系统,装了Eclipse之后心血来潮,不想装什么VC了,不仅界面差,bug也很多,虽然有很多企业用,自己用着也挺爽的,就是突然矫情了一下,加CDT插件编C/C++得了 好的言归正传: Eclipse和CDT这都是官网上下的,国内的网站虽然有但是这个版本不如官网上的新倒是实话,CDT是Eclipse Help里面直接用网址在线加的插件.MinGW(minimum GUN for

支持宕机自动恢复触发一次性或周期性任务执行的组件包-easyTask

easyTask 一个方便触发一次性或周期性任务执行的工具包,支持海量,高并发,高可用,宕机自动恢复任务 开源项目地址:https://github.com/liuche51/easyTask   请多多关注 Usage scenarios 需要精确到秒的某一时刻触发任务执行.比如订单交易完成24小时后如果客户未评价,则系统自动给出评价. 需要周期性的执行某个任务.比如每天下午6点,提醒员工下班关机. Features 使用简单 秒级精度任务执行计划 支持海量任务提交执行 支持高并发执行任务 支

QT 5.7 &nbsp; mingw 不支持webkit

Quote: 引用 4 楼 missfaye 的回复: Quote: 引用 3 楼 u013466477 的回复: Qt5.6已经已经没有了QtWebkit新版QtWebEngine只有在vs版本才有,mingw版本是没有的. 想要用QtWebkit就回到5.6以下的版本 是这样啊,谢谢您,那我还想问下,我要是想用mingw版本,5.7,用qt打开浏览器,就像webkit那样,能实现么? 据我所知,没有替代webkit的东西.只有一个是在windows下用组件实现:QAxWidget,具体qt首