减少gdb打印中的垃圾

reducing junk in gdb print

本文关键字:gdb 打印 减少      更新时间:2023-10-16

我使用的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_prinkers/python中,但那是很久以前的事了。我注意到gdb7.3中有代码is。所以我删除了上面和基础工作,但stl没有。这是一个包含字符串的对象:

{a=2,b=97'a',c=2469135780247,d=1.1363636363636362,e={静态npos=18446744073709551615,_M_dataplus={>={<__gnu_cxx::new_alloctor>={},},_M_p=0x602028"foo"}}}

/gdb-7.3.50.20110526/gdb/data-directory/python/gdb:

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

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

您想要做的是在GDB 7.0及更高版本中使用Python漂亮的打印机来解决。

您不需要pstring,常规的print只适用于(嵌入字符串)。