[Qt-creator] Introducing the python based cdb dumper

David Schulz david.schulz at qt.io
Wed Jan 18 10:55:55 CET 2017

Hi all,

The local values provided by debuggers contain very basic data, which in 
most cases
isn't helpful at all. We are using dumpers/extensions to convert these 
data into user
friendly information. Python based dumpers have been used for quite a 
long time
now when debugging with GDB. The LLDB engine also dumps values via these 
Both debuggers provide a python interpreter and interface allowing to 
access debugger
internals from python code. In contrast: the CDB engine uses an 
extension (dll) loaded
into the debugger to collect data and dump values. This requires us to 
maintain two
different approaches on dumping values. Unfortunately the CDB doesn't 
provide a
python interface.
So, let's introduce one.
First step was to lower the barrier for new debuggers using the python 
dumpers by
reducing the interface required by our dumpers to a minimum. Big thanks 
to Andre
to take care of that. Next step was to provide all necessary information 
from the CDB
in a python module that can be accessed by the python dumper, 
fortunately this task
was easier than expected. Final step and currently in process is 
packaging and
delivering the extension with Qt Creator. And here comes the downside: 
We need to
accept a new license (https://docs.python.org/3.5/license.html) when 
using the python
enabled CDB extension. The idea is to have an extra component (selected 
by default)
for the CDB extension when installing Qt Creator on Windows. This way 
you could
still use Qt Creator without accepting the license, but you won't be 
able to debug
with CDB.

Any opinions regarding the python license or the dumper topic in general?

Whoever want to test the python based dumpers need to define an environment
variable PYTHON_INSTALL_DIR that points to a Python 3.5 installation 
matching the
bitness of your Qt before building Qt Creator. The same path needs to be 
added to
the PATH environment variable before executing Qt Creator. Feel free to 
contact me
on any available channel if you encounter any problems.

TL;DR: I want to use python in the CDB extension. Debugging with the CDB 
will require
accepting a new license (https://docs.python.org/3.5/license.html). For 
testing: Define
PYTHON_INSTALL_DIR pointing to a python 3.5 installation before building 
Qt Creator and
add python to your PATH before executing Qt Creator.


More information about the Qt-creator mailing list