我使用的是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