我使用的是Dan Marinescu的配置gdb 7.2,它允许打印STL向量字符串等(pstring,pvector等) 它看起来不太好。所以看看下面的答案之一,我清理了一下,并使用了7.0以上的漂亮打印机。在gdb中减少垃圾print
为了做到这一点,我把我的.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到/家庭/ ME/gdb_printers/Python的下载代码,但是这是前一阵子。我注意到有代码在gdb 7.3中。所以我删除了上述和基本的工作,但STL没有。这是一个包含字符串的对象:
{A = 2,B = 97 '一个',C = 2469135780247,d = 1.1363636363636362,E = { 静态非营利组织= 18446744073709551615, _M_dataplus = {> = {< __gnu_cxx: :new_allocator> = {},},_M_p = 0x602028 “foo” 的}}}
./gdb-7.3.50.20110526/gdb/data-directory/python/gdb:
为了与STL工作,我需要下载射箭项目的代码: svn co svn://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python
并把它放在上面的目录中,确保所有其他垃圾都没有了,而且它的效果非常好。
你有试过的代码片段吗?您可以使用模板帮助程序进行打印并为您想要自定义的类型进行特化。 – AJG85 2011-05-24 18:34:20