forked from qt-creator/qt-creator
This introduces a dumper types abstraction layer with classes
Dumper.{Value,Type,Field} wrapping either gdb.{Value,Type,Field}
or lldb.{SBValue,SBType,SBField} and uses it to move
to more direct memory accesses in the dumper implementation.
This way we can use duck typing for artificial intermediate
objects eliminating the need for {gdb.Value,lldb.SBValue}.cast()
in some case which are flaky in general and typically not
available in release builds.
As consequence QRegion and QVariant dumper work without debug
info now.
Change-Id: Iea2411175ef67f2bf651ee7eaade9879ed5ceba1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Thinks to check: - loading of custom dumpers (as seen on QByteArray/QString) - availability of Qt debug information (custom display of QObject derived class) - availabitily of Qt sources (single step into some Qt *._cpp_ file) - setting of breakpoints on dynamically loaded plugins (try plugin.cpp here, especially in constructors) - check I/O (qDebug, std::cout, std::cerr)