Move common code to dumper.py and debuggerengine.cpp and
fix it there.
Change-Id: I20d91d1aa7400fbdb27938c10cf40c8f6019df0a
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Recent regression, stack data was only pulled when hitting
a breakpoint, not on interrupt.
Change-Id: I3de29fceadd4c5492f4edaffca7577dae7ae3d11
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
The current setup (dumper->gui: list of descriptions,
gui->dumper: index in list) is fragile and not easily
i18n'able. Go with an enum based approach now.
Change-Id: Ie78c596065a8b2ba87ad725274da29d4be3a6da4
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>
... to the initial stack contents report. This helps to avoid unwanted
assembler reports in cases where we have to skip over "spurious"
stopped events.
Change-Id: I3340297ab01f976ab9d918fe73f69f4f32b12c03
Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
This also addresses the remaining issues of QTCREATORBUG-13803.
Task-number: QTCREATORBUG-13803
Change-Id: Iceb123279236d98961d15fe7421acc7c10d1b1c7
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Ideally, all 'current' data should be passed down from the engine.
Change-Id: Ibfe7c466ec564c6907398ec2ec6c05d04e6670d6
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
The previous display as 0, or 0x0...0e (LLDB on Linux) was
less useful.
Change-Id: I820ea5ef427b65633471c7c62e44851fcfd637cd
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Triggered with the QGraphicsPolygonItem dumper on Linux.
Change-Id: I1374ca308c732eb5c25da959d8b499515ed72e66
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
The stack might produce data (such as as the QML context in
native mixed debugging) that is needed for locals display.
While this doesn't work yet with LLDB anyway, the change
suppresses one soft access when accessing the top frame of
an empty stack (the usual case on the first update).
Change-Id: If931fbe940b8cda01cc6cc34429a2fcb33cd8d19
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Dumper.warn() tries to interleave the message with an
ongoing report, whereas the global warn prints directly,
possibly breaking the report parsing.
Change-Id: If753773d5eedf98a489f155d46d2911e04059461
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
This partially reverts change 1d1695c2.
This doesn't seem to be needed with recent versions of LLDB anymore
and removes one source of "spurious" breakpoint-changed events.
Change-Id: I8140944a46bbc83173c0088117a88110b0872e8a
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Move reusable Breakpoint enum to base, use 'theDumper' uniformly
across backends as name for the Dumper singleton. Signal
engine setup only if the Dumper successfully initializes.
Change-Id: If1b6be9d054f249d0d46061e4949cbecf4fd09cb
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Instead of calling a GDB extension command invoking a function
on the well-known Dumper instance, call the Dumper function
directly. This also makes the code more similar to the LLDB side.
Change-Id: I4b23177eb72a904721b63c578ce7fbfe204f02a2
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
On Mac, don't ignore the 'attach' stop, as it causes trouble
in the Terminal case. So a terminal start needs extra
'continues' but doesn't crash LLDB anymore.
Change-Id: Iaa72e3f5cfc02d8cd1841fa57e0633109645da31
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Breakpoints are hit, stack frames are identified as JS or native.
No further data yet.
Change-Id: I84a02422fd36dc7645003114dd8519bedd913c06
Reviewed-by: hjk <hjk@theqtcompany.com>
Broke with aa39916c41
It was missing a @ marker to separate mirrored messages from actual
data.
Change-Id: Ie142055181de4fada15060108a6ba2166591012e
Reviewed-by: hjk <hjk@theqtcompany.com>
Instead of starting LLDB through a Python script this now starts
LLDB directly. This did not work a while ago but seems fine nowaday.
Change-Id: I20e915070cd6addf260817c311f4160d010aa861
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Reviewed-by: hjk <hjk@theqtcompany.com>
This generalizes part of the previously GDB-only code paths
Change-Id: Id32798073e3c8bcb23bfedf463bebc866c8275e2
Reviewed-by: hjk <hjk@theqtcompany.com>
Write the full command to a temporary file for easier re-use.
Un-ignore the first stop, this does not seem to be needed in
the new async setup.
In some cases LLDB is not able to extract the even the top most
frame of the stopped thread (happened 2 out of 100 runs of the
QDateTime dumper). It's unclear why. For now just report the fact.
Change-Id: I76a63bc288f1ae6f5bd9b9604a47f051912b93d7
Reviewed-by: hjk <hjk@theqtcompany.com>
Use register names as handle, not their index in the view.
Store the raw real values, not some stringified version
as primary data. Use subentries to break down bigger
registers into smaller entities. Also remember the
previous value of a register and show it in a tooltip.
Change-Id: I8ae3cc8766a7b211bc7cc827c734e5cf6060825c
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
The underlying problem here is still that we can deduce
the item type from the map type except by string manipulation
and type lookup. Which fails at times.
Change-Id: Ibe6a8ca1fbd84c43c7d31b65e017792d1b6a1e0b
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
There is seemingly still no proper API for that, and
the old hack broke. Use a new one.
Change-Id: I9e638ca1fbd84c43c7d31b65e017792d1b6a1e0b
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
The old code worked around some issue that is not present
anymore and breaks now by itself. So remove the workaround.
Change-Id: I41a017ced91198bdc4e822cfcc1c45580945a773
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Add make std::string usable as "compact" key.
Change-Id: Idbfcf9d299e2dde392025166a20c3d0ab60239a6
(cherry picked from commit 2776536a7e)
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
LLDB 320.* from XCode 601 was unhappy. This is an trial-and-error
to get it start up again.
Change-Id: I5dda0eef785d70abbb5798c3884ace89a8426969
(cherry picked from commit 1af0f77ea9)
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
LLDB 320.* from XCode 601 was unhappy. This is an trial-and-error
to get it start up again.
Change-Id: I5dda0eef785d70abbb5798c3884ace89a8426969
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>