Configure GDB pretty printer for Msys2
This is my way to use gdb python pretty printer for the libstdcxx under msys2. Suppose you use 64bit gcc compiler. My msys2 is installed under F:\msys64
In the Menu->Settings->Debugger settings. Open the debugger plugin setting dialog.
Then, in the "Executable path" field, select "F:\msys64\mingw64\bin\gdb.exe" in the "Debugger initialization commands" field, put the following text in the edit control.
source F:\msys64\mingw64\etc\gdbinit
I see that I have to modify the file "F:\msys64\mingw64\etc\gdbinit" file: below is the original code
python import sys sys.path.insert(0, sys.path[0] + '/../../gcc-9.2.0/python') from libstdcxx.v6.printers import register_libstdcxx_printers end
But you have to add one line before the "end" statement like below to let the register_libstdcxx_printers function get executed.
python import sys sys.path.insert(0, sys.path[0] + '/../../gcc-9.2.0/python') from libstdcxx.v6.printers import register_libstdcxx_printers register_libstdcxx_printers(None) end
BTW: It is the same thing to add the python pretty printer for wxWidgets. You can use this file:
https://github.com/wxWidgets/wxWidgets/blob/master/misc/gdb/print.py
Use predefined macros for the paths
Under Code::Blocks, you can used some predefined path macros.
For example, you don't need to write
source F:\msys64\mingw64\etc\gdbinit
Instead, you can use this:
source $(TARGET_COMPILER_DIR)etc\gdbinit
Since you have already defined the compiler master path in the "Menu->Settings->Compiler->Toolchain executables" as "F:\msys2\mingw64", so the second way is more portable. Also, to mention gdb.exe, you can use
$(TARGET_COMPILER_DIR)bin\gdb.exe
Useful Links
Debugger: use gdb python pretty printer for the libstdcxx under msys2