【发布时间】:2011-05-24 15:53:36
【问题描述】:
我正在使用带有 Dan Marinescu 配置的 gdb 7.2,它允许打印 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 = { 静态 npos = 18446744073709551615, _M_dataplus = {> = {<:new_allocator> = {}, }, _M_p = 0x602028 "foo"}}}
./gdb-7.3.50.20110526/gdb/data-directory/python/gdb:
为了使用 STL,我需要下载 archer 项目的代码: svn co svn://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python
然后把它放到上面的目录中,确保所有其他的垃圾都没有了,而且效果很好。
【问题讨论】:
-
你有你尝试过的代码sn-p吗?您可以使用模板帮助器来完成此操作,用于打印和专门化您想要自定义的类型。