减少gdb打印中的垃圾

时间:2011-05-24 15:53:36

标签: c++ stl gdb

我正在使用gdb 7.2和Dan Marinescu的配置,允许打印STL矢量字符串等(pstring,pvector等) 它看起来不太好。所以看下面的答案之一,我清理并使用了7.0及更好的漂亮打印机。

为了做到这一点,我将以下内容放在我的.gdbinit

python
import sys
sys.path.insert(0, '/home/me/gdb_printers/python')
from libstdcxx.v6.printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end
set print elements 0

说明说将svn中的代码下载到/ home / me / gdb_printers / python中,但这是前一段时间了。我注意到gdb 7.3中有代码。所以我删除了上面和基础工作,但stl没有。这是一个包含字符串的对象:

{a = 2,b = 97'a',c = 2469135780247,d = 1.1363636363636362,e = {     static npos = 18446744073709551615,     _M_dataplus = {> = {< __ gnu_cxx :: new_allocator> = {},},_ M_p = 0x602028“foo”}}}

./ GDB-7.3.50.20110526 / GDB /数据目录/蟒/ GDB:

为了使用STL,我需要下载archer项目的代码: svn co svn://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python

并将其放在上面的目录中,确保所有其他垃圾都消失了,并且效果很好。

1 个答案:

答案 0 :(得分:1)

使用Python pretty printers在GDB 7.0及更高版本中解决了您想要做的事情。

您不需要pstring,常规print just works(对于嵌入字符串也是如此)。