pretty-printers查看map内容出现错误
来源:互联网 发布:中国农大网络教育平台 编辑:程序博客网 时间:2024/05/23 00:12
如何在GDB中以普通人类可以理解的方式查看容器的内容?
很多博客都说了,比如这篇:http://blog.csdn.net/meteor1113/article/details/5180293
现摘抄如下:
GDB 7.0加入了python脚本支持,可以通过python编写pretty-printers用来显示 stl容器。
方法是通过svn下载python libstdc++ printers:
svn co svn://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python
但是,这个地址co下来是有问题的:
(gdb) print m_HandlerMap
$3 = std::map with 1 elementsTraceback (most recent call last):
File "/home/lxf/.gdb/python/libstdcxx/v6/printers.py", line 427, in children
rep_type = find_type(self.val.type, '_Rep_type')
File "/home/lxf/.gdb/python/libstdcxx/v6/printers.py", line 45, in find_type
raise ValueError, "Cannot find type %s::%s" % (str(orig), name)
ValueError: Cannot find type std::map<int, SelectEvent*, std::less<int>, std::allocator<std::pair<int const, SelectEvent*> > >::_Rep_type
查看map的时候会有上面的错误信息,所以,stackoverflow告诉我答案了:http://stackoverflow.com/questions/9102967/pretty-printers-for-maps-throwing-a-type-error
出现上面错误原因是:libstdc++变了,所以pretty-printers的代码也变了,上面给的SVN地址就变得旧了。新的SVN地址:
svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch/libstdc++-v3/python
这样就可以了。
把下载来的python目录放在用户目录下的.gdb下。之后在~/.gdbinit中加入下面的内容:
- python
- import sys
- import os
- p = os.path.expanduser('~/.gdb/python') 这一行中引号内容要改成你刚才从SVN上checkout下来的目录
- print p
- if os.path.exists(p):
- sys.path.insert(0, p)
- from libstdcxx.v6.printers import register_libstdcxx_printers
- register_libstdcxx_printers(None)
- end
这样就为stl容器安装好了pretty-printers,在GDB中直接print容器会直接 print出容器内容,而不是以前那一堆乱七八糟的东西。
- pretty-printers查看map内容出现错误
- GDB Python pretty printers
- GDB Python pretty printers配置打印c++中stl库容器
- gdb 查看vector, list, map 内容
- firefox出现内容编码错误
- wordpress 查看文章出现404错误解决办法
- 模块编译时出现not in prelink map错误
- android使用google map api 出现INSTALL_FAILED_MISSING_SHARED_LIBRARY 错误
- 使用标准模板库map出现错误C2784,C2676
- 删除sql server数据库中内容时出现的错误
- vc6.0 release版本下出现内容读写错误问题
- MFC ListBox添加内容时总出现内存错误
- SharePoint 2013 附加内容数据库后出现404错误
- 出现缓存池导致内容错误或重影
- WebService远程调试时出现"无权查看网页"的错误
- Android查看源代码出现Source not found错误
- loadrunner压测过程中出现错误,查看日志方法
- 查看流表时出现 Dpctl : Error During Transaction错误的解决方法
- 图标等资源的引用
- 检测到 LoaderLock Message Microsoft.DirectX.dll”正试图在 OS 加载程序锁内执行托管代码。
- HDOJ 2874 Connections between cities
- 算法系列(三) 快速排序
- Windows 8 Release Preview初体验
- pretty-printers查看map内容出现错误
- EL表达式详细介绍
- 《图像处理与计算机视觉算法及应用》读后感
- C语言标准IO
- 用Android-X86和VirtualBox打造高性能Android开发环境
- 复制剪贴板功能
- virtual、abstract、、Interface区别及应用
- emacs orgmode 文档元数据 控制发布页面显示数据
- Hibernate一对多实例