Don't instantiate repeating boilerplate item data in some
cases (such as large arrays).
This makes it necessary to access parent WatchItems in
a lot more cases than before and needs another separation of
WatchItem/WatchModel code to keep the dumper autotests
in a functional state.
For a plain std::vector<int> with 1 mio items this reduces
extraction time from more than 2 minutes to about 3 seconds.
Change-Id: I175c5f6ee90434a6e85342d8bb71bd10a04dd271
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
... and switch it off by default. The feature has indeterministic
performance impact and lost quite a bit of its utility since GDB
learned to extract dynamic object types most of the times.
Change-Id: I22cccb03ba67f9ff6ad757bbc06eb372d84bbffe
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: hjk <hjk@theqtcompany.com>
... in the presence of empty base classes. This now actually makes
the Inheritance dumper test pass.
Change-Id: I92ada5da46accb6e7eaff58ce5dc329484ef0909
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
... as well as the 'autoderef' flag. A lot of dumper tests were
failing even though the dumpers themselves were ok.
Change-Id: I198784d95eb0004e81bfab995121e048b1722c66
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
With C++11 we use std::atomic in the ref counter, giving yet
another possibility of structure member names. Instead of
trying to keep up with that, access the binary data directly.
Change-Id: I572f727eb9dab37ac1ca07594d55bea723050817
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
... by adjusting the expectations on the exact type display
and trying two possible versions of structure member names.
Change-Id: I817aeb787b905cb22c6f68856043a29db3e79e59
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
CamelCase might be more Qt-ish, but the backends tend to use
lowercase only.
Change-Id: I04b9b7305b54226f27b70151115050c4816f911f
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
- Remove old experimental native mixed approach.
- Move some common stack parsing to Stackhandler.
- Mark gdbbridge.py debug output explicitly to remove it
from actual reponse handling
New native mixed needs QtDeclarative changes and
QTC_DEBUGGER_NATIVE_MIXED=1 for now.
Change-Id: I09eed1da51cea878636d36756015b7bfaed34203
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
While the formatted value is usually all that's wanted,
having access to the individual chars is handy at times.
Change-Id: I53b0d0ccfe4289b9b54a1caced4e0bd5ac66d9fc
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
... that breaks QHash display for keys with value 0.
Task-number: QTCREATORBUG-14451
Change-Id: I8578d9f1d14c367beaccabc5373bd75860ee454b
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Needed to debug the QmlDebugger.
Change-Id: Ia0b50dac2146fcc81990b78eb8de30c8e763bba2
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
The include for utils/environment.h was omitted
unless Q_OS_MSVC, but the code that uses it is
also compiled for MinGW-w64, so change that compile
guard to Q_OS_WIN instead.
Change-Id: I2fa5a09f1864c0ed38d09e3fbb2c6f661fbc8b26
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This was testing a bool value, not a stream, and doing that wrong
on Windows.
Change-Id: I86b1aaea99e77b2aa3c37bb5c9c3e0ba8a90cb05
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Normally, we use '?' as an optional Qt namespace qualification.
This clashes with the use of ? in a regexp type expression.
Re-order checks to avoid the clash.
Change-Id: I4a8aee0174f4f3d21bec624919856623808becb1
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
... by relaxing the namespace checks.
Change-Id: I2c2978fe4e95bdc87df24fd6ecbcba4bf1913df3
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
This is a generalization of 134234be67. '?QFoo' is now meant to
match both 'QFoo' or 'Ns::QFoo' in a namespaced Qt. '@QFoo'
continues to match 'Ns::QFoo' only.
Change-Id: I4285cd9f75a2e4cd94ec5dbb107214f75a60c810
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Older versions of GDB (~GDB 7.4 on 32 bit) will cause segmentation
faults in inferior calls due to misaligned %ebx values in an SSE
call in qstring.cpp:findChar.
Change-Id: I44492106080f12e645f9d57828438ec70fd66ca6
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
... to make it pass with LLDB. The exact display of the private
is not *that* interesting anyways.
Change-Id: I2d0a8bdd5daff4b03c77b00c887837c7568ea508
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
LLDB 3.7 on Linux doesn't get the namespace right in QMapNode:
sc t = lldb.target.FindFirstType('Myns::QMapNode<int, CustomStruct>')
sc t.GetName() -> QMapNode<int, CustomStruct> (no Myns::)
Change-Id: Ied306f70035e0669bc822700a92371b7de35a603
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Failures were due to version specific reordering. This is still
checked in cases h1, h7, h8. Simplify maintanance by removing the
check in the other cases.
Change-Id: I481672e693f6370c75bc4739d6cca937b9f027ea
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Take new QPolygon{,F} dumpers into account, also make QUrlPrivate
field accessible,
Change-Id: I2b5c122895c3ee389ba939eaeffcd613fa206009
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
... and further unify GDB and LLDB code paths.
Change-Id: Id89f3804c53190c4888082891fd3c3c55eceac84
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>