- GDBでSTLコンテナを確認するとき、実装がそのまま見えてしまってデバッグし辛い
- GDBには変数の表示を整形する機能があるので、それを使うと良い
- libstdc++にSTLの実装を隠すためのスクリプトが付属している
.gdbinitで表示改善スクリプトを読み込むようにすると、GDBの起動時にそれらが設定される
.gdbinitは$HOMEに置く
- パスはgccかlibstdc++にあるpythonディレクトリを指定する
python
import sys
sys.path.insert(0, "<pythonディレクトリへのパス>")
from libstdcxx.v6.printers import register_libstdcxx_printers
register_libstdcxx_printers(None)
end
- 起動時に整形機能を有効にするため、vscodeの
launch.jsonのsetupCommandsに{"text": "-enable-pretty-printing", "ignoreFailures": true},を追加する
- 稀に、GDBがPython機能を無効にしてビルドされている場合もあったりするので注意