... that breaks QHash display for keys with value 0.
Task-number: QTCREATORBUG-14451
Change-Id: I8578d9f1d14c367beaccabc5373bd75860ee454b
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Simply relying on '[' < any_letter is not good enough in the
presence of uppercase identifiers.
Task-number: QTCREATORBUG-14637
Change-Id: Ib0e305c0b86f3b117c07de18cde00b14f424a7c4
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This was needed with earlier, now unsupported versions of LLDB to
provide a target context for evaluation of expressions.
Not needed anymore since SBTarget.EvaluateExpression() exists now.
Change-Id: I31871937832439dbd98b763ac77eab4db56ef2ee
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
They can appear for unnamed function parameters with default values,
e.g. void foo(int = 0).
Change-Id: I02cad093247f4508e7d4c4fd3f143c9ad8d5ebd1
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Needed to debug the QmlDebugger.
Change-Id: Ia0b50dac2146fcc81990b78eb8de30c8e763bba2
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Also correct typo in function name.
Task-number: QTCREATORBUG-14629
Change-Id: I193efc3a002f83b0091f93e087f2feb19dc4f5c1
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Occurred when I tried to expand an object that contains 2
unnamed unions (CPlusPlus::Token)
File "gdbbridge.py", line 1113, in putItem\n self.putFields(value)\n'
File "gdbbridge.py", line 1150, in putFields\n fields.sort(key = lambda field:\n'
'TypeError: unorderable types: str() < NoneType()\n'
Change-Id: Ica38750435ae851b52d87dc6fcc59118d3f1d8ee
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
The request will be honored when creating the values
instead of re-sorting in the frontend.
Change-Id: I0ea13bd9b0700a4d2ae4f0b355c56ddd37557398
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
This splits the bool setToolTipExpression() operation into
a bool canHandleToolTip(), and the actual processing of
the request, which is mostly identical to the handling of
a watcher.
Handling a watcher is now mostly the same as a full Locals
update, except for the 'partial' flag. Pushing the handling
of that down to the bridges gives identical code paths
in the gdb and lldbengine. Move that to the
DebuggerEngine base class.
Change-Id: I3861b43e8630c7e7bd57fcd549b2a2387e3d4869
Reviewed-by: hjk <hjk@theqtcompany.com>
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
On MSYS2, if QtCreator is launched from one of the msys2 shells
then the MSYSTEM env. var is set and our Pythons set os.sep and
os.path.sep to '/' so that it aligns with the default separator
of those shells.
fromNativePath(str) then fails to convert '\' seprators embedded
in binaries since str.replace('/', '/') is a noop. The operation
we want here is to convert all '\' to '/' anyway so this is more
explicit regardless of any opinions on our choice to dynamically
vary os.sep and os.path.sep
Change-Id: I76c05b188abca41c6a1b516c68b584e0c06e7235
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: hjk <hjk@theqtcompany.com>
This partially reverts commit e33da6a6b3.
GDB seems to hang while executing str(some_pointer) in some setups.
Task-number: QTCREATORBUG-14374
Change-Id: Ia678533b9122e505b21ef6659d404239995ddb81
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Not much harm done, the code was meant to raise an exception anyway...
Change-Id: I81db4081b4ca583e46a826aaee2fc8fa3f186a11
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>
Seems to not be needed anymore with recent GCC, and makes the
LLDB test pass on Linux.
Change-Id: If793e726656df8b319d2f50e1986e0a92f68411d
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Implementation seems to have changed.
Change-Id: I196d02cddcccdd7765e5a098bb98f894122781a1
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
This brings it into line with GDB output and is needed in
the frontend to provide normal integral value base changes.
Change-Id: I17adc7730419648d45c0d5866311de33bf01a7f0
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
In the fallback case now really go back to explicit object-at-address
construction. LLDB on Linux doesn't seem to like implicit pointer
arithmetics.
Change-Id: I3be6b0b21b35b9b9141440d4a11e9e889bb2f4bb
Reviewed-by: hjk <hjk@theqtcompany.com>
Unlike SBValue.CreateValueFromAddress, SBTarget.CreateValueFromAddress
does not seem to like None as name. '@' gets accepted, though,
and is unlikely to appear as real C++ identifier.
Change-Id: I74f6d218f73222af3308d2acb5fbe9ff0a0f6c4b
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
The field checked for does not even exists in lldb.SBValue.
Change-Id: I062ccf62da2e2ea3f011d0b841cba0e87f7c6fa9
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
SBTarget.CreateValueFromAddress was not supported by older
versions of LLDB. Unfortunately, we still can't use
SBTarget.CreateValueFromExpression.
Change-Id: I982021531a2ab070aa279dd17e9714f86efe83cc
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
'bytes' has special meaning in Python.
Change-Id: I9ff7c56488c9d29e42b2c7a12e40b45815be2a76
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
This makes the GccExtension dumper test pass with GDB
Change-Id: Ia1319e878416bea8b162a1a9eef1271cb7bebc63
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>
This practically removes any functionality beyond plain plot display,
but does that at least reliably, cross-platform, without dependency
on 3rd party python packages.
Change-Id: Iaff2f78595394522f32264c642df20dd48b83f8b
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
We require 7.5.1 now, so the case is uninteresting.
Change-Id: I40bf1c3d531b83998a45e7476ed48397b23b4ae6
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>