Debugger: Use direct memory instead of member access

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>
This commit is contained in:
hjk
2016-09-06 08:54:43 +02:00
committed by hjk
parent 6f963fd56e
commit 2244e2b26c
10 changed files with 3664 additions and 3234 deletions
+4
View File
@@ -2,6 +2,10 @@ QT = core network
QTC_LIB_DEPENDS += utils
!win32 {
CONFIG -= release
CONFIG += debug
}
include(../qttest.pri)
msvc {
File diff suppressed because it is too large Load Diff