EclipseでデバッグするときSTLコンテナの中身を整形して表示

C++でプログラミングをしていて,デバッグするときにgdbを使えばいいんですけど使い方がいまいちよくわからないのでEclipseを使ってデバッグしたらGUIだし見やすくて操作もしやすくていいかなと思っていたらとんでもない罠があった.

STLコンテナの中身がカオス!

絶対綺麗に表示できるようなプラグイン的Somethingがあるはずだと思い調査.

一応公式に書いてあった http://wiki.eclipse.org/CDT/User/FAQ#How_can_I_inspect_the_contents_of_STL_containers.3F

GDB用のSTLサポートライブラリ的なものをダウンロード

 svn co svn://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python

または,http://sourceware.org/gdb/wiki/STLSupport からSTLSupportToolを適当なディレクトリにダウンロードして展開

gdbinitファイルを適当な場所に作成

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

Eclipseでgdbinitの場所を指定.

Window -> preferences -> C/C++ -> Debug -> GDB

参考