GDB pretty printing of C++ STL.md

October 5, 2023 ยท View on GitHub

  1. Install package libstdc++6 (Ubuntu 16.04)
  2. Add following to ~/.gdbinit
python
import sys 
sys.path.insert(0, '/usr/share/gcc-9/python')
from libstdcxx.v6.printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end

Note: check /usr/share path for version of libstdstdc++ - dpkg -L libstdc++6 | grep python

CentOS 7

Default install comes with GCC-4.8.5 printers, which are not compatible with STL structures from GCC7.3.

Solution: install newer GDB (e.g. from devtoolset-10):

yum install centos-release-scl
yum install devtoolset-10-gdb

Newer gdb is available at: /opt/rh/devtoolset-10/root/usr/bin/gdb

python
import sys 
sys.path.insert(0, '/usr/share/gcc-4.8.5/python')
from libstdcxx.v6.printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end