Commit Graph

438 Commits

Author SHA1 Message Date
hjk c992a9ff08 Debugger: Add dumpers for QPolygon{,F} and QGraphicsPolygonItem
Change-Id: Ic246b28d44312a677c8d41194d4e0c324bda125d
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-02-24 14:48:33 +00:00
hjk 2ee4363d1d Debugger: Force LLDB round trip between stack and locals update
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>
2015-02-24 14:31:32 +00:00
hjk 3a7a1c2164 Debugger: Make some LLDB warning not break output format
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>
2015-02-24 13:27:23 +00:00
hjk 4198cc1441 Debugger: Don't re-check pending LLDB breakpoints
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>
2015-02-24 09:55:35 +00:00
hjk aa67078276 Debugger: Implement basic value assignment for PdbEngine
Change-Id: I505c3e9c4a239ed381d525b5acaf1acf3a06a59a
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-02-13 17:05:29 +00:00
hjk 055c4ecb53 Debugger: PdbEngine cleanup
Change-Id: I39f072fe819da746c624e6028b0e5e17f1f1f111
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-02-13 16:12:16 +00:00
hjk 5442d144b6 Debugger: Hide PdbEngine infrastructure from itself
Debuggers running inside the debugged application are weird.

Change-Id: I2452e3653221c8f585123852ea113bd2fdfd08ed
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-02-13 15:01:39 +00:00
hjk d479701591 Debugger: Start moving PdbEngine to event based parsing
Change-Id: I63e06045b54226636280678ae7db8326a3e5f02e
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-02-13 14:51:39 +00:00
hjk a081fee8f5 Debugger: Cleanup lldbbridge.py
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>
2015-02-13 09:55:35 +00:00
hjk a7fce39103 Debugger: Start moving PdbEngine to common Gdb/Lldb base architecture
That's still not meant for "production", but just the "3rd use case
needed to get abstractions right".

For testing, remove all build steps, and use a custom run step
with executable /usr/bin/python and argument pointing to the
main .py file.

Change-Id: I6ae6ed08597896ea979ee58e73c546c7892e8be2
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-02-13 08:54:14 +00:00
Eike Ziller 9926fc2ab1 Merge commit '3c85058694ee2e41658d17f524fb48f0b187d2fe'
Conflicts:
	src/libs/utils/tooltip/tipcontents.cpp
	src/libs/utils/tooltip/tipcontents.h
	src/plugins/android/androiddeployqtstep.cpp
	src/plugins/baremetal/baremetalconstants.h
	src/plugins/baremetal/baremetaldevice.cpp
	src/plugins/baremetal/baremetaldevice.h
	src/plugins/baremetal/baremetaldeviceconfigurationwidget.cpp
	src/plugins/baremetal/baremetaldeviceconfigurationwidget.h
	src/plugins/baremetal/baremetaldeviceconfigurationwizard.cpp
	src/plugins/baremetal/baremetaldeviceconfigurationwizardpages.cpp
	src/plugins/baremetal/baremetaldeviceconfigurationwizardpages.h
	src/plugins/baremetal/baremetalplugin.cpp
	src/plugins/baremetal/baremetalplugin.h
	src/plugins/baremetal/baremetalruncontrolfactory.cpp
	src/plugins/baremetal/baremetalruncontrolfactory.h
	src/plugins/cppeditor/cppcodemodelinspectordialog.cpp
	src/plugins/cppeditor/cppdoxygen_test.cpp
	src/plugins/cppeditor/cppdoxygen_test.h
	src/plugins/debugger/breakpointmarker.cpp
	src/plugins/debugger/debuggeritemmodel.cpp
	src/plugins/debugger/debuggeritemmodel.h
	src/plugins/debugger/loadcoredialog.cpp
	src/plugins/genericprojectmanager/cppmodelmanagerhelper.cpp
	src/plugins/projectexplorer/addnewmodel.cpp
	src/plugins/projectexplorer/addnewmodel.h
	src/plugins/projectexplorer/jsonwizard/jsonfieldpage.cpp
	src/plugins/qmlprofiler/abstracttimelinemodel.cpp
	src/plugins/qmlprofiler/abstracttimelinemodel.h
	src/plugins/qmlprofiler/notesmodel.cpp
	src/plugins/qmlprofiler/qml/CategoryLabel.qml
	src/plugins/qmlprofiler/qml/MainView.qml
	src/plugins/qmlprofiler/qml/Overview.js
	src/plugins/qmlprofiler/qml/Overview.qml
	src/plugins/qmlprofiler/qml/TimeDisplay.qml
	src/plugins/qmlprofiler/qml/TimeMarks.qml
	src/plugins/qmlprofiler/qmlprofilertimelinemodelproxy.cpp
	src/plugins/qmlprofiler/sortedtimelinemodel.cpp
	src/plugins/qmlprofiler/sortedtimelinemodel.h
	src/plugins/qmlprofiler/timelinemodelaggregator.cpp
	src/plugins/qmlprofiler/timelinemodelaggregator.h
	src/plugins/qmlprofiler/timelinerenderer.cpp
	src/plugins/qmlprofiler/timelinerenderer.h
	src/plugins/qmlprojectmanager/QmlProjectManager.json.in
	src/plugins/texteditor/findinfiles.cpp
	src/plugins/vcsbase/vcsconfigurationpage.cpp
	src/shared/qbs
	src/shared/scriptwrapper/interface_wrap_helpers.h
	src/shared/scriptwrapper/wrap_helpers.h
	tests/auto/qmlprofiler/abstracttimelinemodel/tst_abstracttimelinemodel.cpp
	tests/system/suite_debugger/tst_debug_empty_main/test.py
	tests/system/suite_debugger/tst_qml_js_console/test.py
	tests/system/suite_debugger/tst_qml_locals/test.py

Change-Id: I67540b648f8b162496f4aa606b04d50c7c9125c6
2015-02-12 17:29:21 +01:00
hjk f91cc66f9a Debugger: Combine some watch related GDB and LLDB code paths
Change-Id: I20e5f6f04418c931354a07bc3597f6982fcaf942
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-02-12 12:49:21 +00:00
hjk 9df463da84 Debugger: Convert bb extension to use runCommand
Change-Id: I528c51d2b02dccd91429778ef8c940fe5565345f
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-02-12 10:27:33 +00:00
hjk 875d889082 Debugger: Move bbsetup over to runCommand()
Change-Id: I0a19b28d24cb570651ea84bf7cdbc9a761f85a0b
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-02-12 07:19:48 +00:00
hjk f65cb6ae4d Debugger: Complete switch to Python for GDB stack generation
The iteration in Python was only used for the 'native mixed'
case before. Seems reasonably fast and robust now to always
enable it. Also, make the calling code use 'runCommand'.

Change-Id: I10565a725dfaa9bf46c28739c69e9f2546498929
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-02-11 16:34:51 +00:00
hjk e76c4839bb Debugger: Consolidate some GDB-through-Python interaction
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>
2015-02-11 15:00:35 +00:00
hjk 547855bf02 Debugger: Using DebuggerCommand instead of bbedit call
Mid-term goal is to reduce the amount of similar code
at least in GDB and LLDB engines.

Change-Id: I4883686a102246be3135ddc694b837b1187ac9e9
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-02-11 08:06:39 +00:00
hjk 4c63855f88 Debugger: Remove unused UpdateData::tooltipOnly member
Change-Id: I15c6f16a258c0d664d2378150c4b3277a29c4b5c
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-02-06 12:06:28 +00:00
hjk e4de40127f Debugger: Enable 'native mixed' toogling also for LLDB
Change-Id: I50a026d6af2874aa78db98b0df1fcbe233c88b1b
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-02-05 13:22:37 +00:00
hjk fee7cbe55b Debugger: Move 'mixed native' variables extraction to DumperBase
In preparation for re-use through LLDB. Not yet functional there.

Change-Id: Ia924f1499a1bbaebf3dccbe15152f324058b1677
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-02-05 12:00:57 +00:00
hjk a20a7d099b Debugger: Move QML stack access to DumperBase
... and make it work with LLDB.

Change-Id: Idaec029942dbcc726931781caff830173f7b126a
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-02-05 10:55:55 +00:00
hjk 96a0f48093 Debugger: Pass all breakpoint properties to *brigde.py
Change-Id: I58ee1b106e1cd6e8ad5ce99b226860c528698520
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-02-04 15:32:20 +00:00
hjk ca1f743463 Debugger: Native mixed fixes
Change-Id: I1b10b2f6a241c6061ac5ee77825aa8500cb7097f
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-02-04 15:30:59 +00:00
hjk 7b462aa0bc Debugger: Startup fixes for LLDB
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>
2015-02-04 14:20:27 +00:00
hjk b197566eec Debugger: Improve LLDB state reporting
Change-Id: I652755c09e99f9a5d9607b49850ea3350193d086
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-02-04 13:19:27 +00:00
hjk d4a32fd6b3 Debugger: Implement native mixed breakpoints with LLDB
Breakpoints are hit, stack frames are identified as JS or native.
No further data yet.

Change-Id: I84a02422fd36dc7645003114dd8519bedd913c06
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-02-04 12:46:02 +00:00
hjk 7d4b9c4ba0 Debugger: Move some 'mixed native' code to DumperBase
Prepares reuse in LLDB.

Change-Id: I2238a94937411b80a9ec84ab738aba2146bba50e
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-02-04 11:30:27 +00:00
hjk 3a9b34f232 Debugger: Re-use base infrastructure for LLDB breakpoint handling
Change-Id: If32b1f421e45dc4ee446e193e03c959d7c700948
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-02-04 08:50:19 +00:00
hjk 24afad2c32 Debugger: Adjust Native Mixed to new JSON based protocol
Change-Id: I4a9b9b31bba24a81824303f343115ba7c3709107
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-02-03 14:00:47 +00:00
Eike Ziller 7005d791c3 LLDB: Fix that locals didn't show up anymore
Broke with aa39916c41
It was missing a @ marker to separate mirrored messages from actual
data.

Change-Id: Ie142055181de4fada15060108a6ba2166591012e
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-02-02 14:35:48 +00:00
hjk aa39916c41 Debugger: Invert LLDB/Python startup order
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>
2015-01-30 15:35:20 +00:00
hjk f479c1979e Debugger: Move common dumper module code to DumperBase
Change-Id: Id411edcefbb56c480b87829062395dcb5244d2a5
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-01-30 08:49:19 +00:00
hjk eafde22e16 Debugger: Handle extra dumpers with LLDB
This generalizes part of the previously GDB-only code paths

Change-Id: Id32798073e3c8bcb23bfedf463bebc866c8275e2
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-01-29 15:42:31 +00:00
hjk a6e9f032e3 Debugger: Use Utils::TreeModel for watch window
The circle closes, that's where the code came from.

Change-Id: Ic36ab61ec8886c9a2747aeb29a7245df3ef0b6c4
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-01-29 10:32:32 +00:00
hjk c5c229b48f Debugger: Delay matplot process initialization
Reduces costs in case the feature is not requested.

Change-Id: I66da6f256baaec6ef9d40bc135942551d58e83da
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-01-29 08:42:39 +00:00
hjk ed2a84c822 Debugger: Prevent LLDB choking on extra dumper paths
Change-Id: I230a05274e95430162c3f2d05de5d93bf4985b4e
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-01-28 17:21:42 +00:00
hjk e9237c20c6 Debugger: Work on LLDB auto-test on Linux
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>
2015-01-28 16:29:10 +00:00
hjk 8e83b6cf01 Debugger: Update doc URL in personaltypes.py
We all know that site migrations are fully automated and do
not cause any extra work.

Change-Id: Ibb66493fa1e564c54abb21e2f9a2f16242289957
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-01-27 12:24:19 +00:00
Christian Stenger ed437bb656 Dumper: Fix failing GDB startup when using MinGW
Task-number: QTCREATORBUG-13892
Change-Id: Ia843cf4d88c574013e67cacaa8484b52fdbd4b8a
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-01-27 11:41:12 +00:00
hjk 962649317b Debugger: Make LLDB autotest produce output on Linux again
Change-Id: I0ea21b248b51a871753f66e386fd125df1d1ead5
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-01-26 22:09:24 +01:00
Christian Stenger 7022d73970 Dumper: Avoid output of plotting subprocess on console
Change-Id: I2e1cfc95b556b7d0c2fc1770523d43159790aae1
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-01-26 09:19:09 +01:00
hjk 4ea0138423 Debugger: Replace gnuplot by python-matplotlib for graph dumper
Better functionality and availability than the gnuplot version.
The feature ("Show array-like data in external plot window")
will be automatically enabled if 'from matplotlib import pyplot'
succeeds.

Change-Id: I1799534ac5f878d3e43e47289d1b563b52bb4378
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-01-26 09:14:08 +01:00
hjk 4c928f6099 Debugger: Disable GDB's own pretty printers when use is not wanted
Saves up to 20% on large uniform structures.

Change-Id: I98c8c942f0accac7e2db1d8b06bf7ed156967306
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-01-26 09:13:53 +01:00
hjk d4bdae9a3d Debugger: Make dumper reload with Python 2.x
Change-Id: If23573fab0f951bed0f86b70500dd7e9862df887
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2015-01-22 12:57:15 +01:00
hjk 61c49a122f Debugger: Initial shot at native Qml-and-C++ debugging
Only for GDB now, requires a debug build of Qt, not feature complete.
To enable it, run with QTC_DEBUGGER_NATIVE_MIXED=1 and press
the 'oo' button in the debugger toolbar.

Change-Id: I28aac9db13f7067e03cc364b89cc8046fa213dae
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-01-22 12:39:02 +01:00
hjk cca1030432 Debugger: Add python command to add dumpers
More flexible than hacking on the C++ side. Also registers
the custom dumper path to make it reloadable like the
"built-in" dumpers.

Change-Id: I0405f7278e28eb75d83fdd4a861f5a5c32d97a0e
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2015-01-22 10:55:36 +01:00
Eike Ziller 3c85058694 Update License
Change-Id: I711d5fb475ef814a1dc9d2822740e827f3f67125
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
2015-01-16 12:37:56 +01:00
hjk d573195b67 Debugger: Improve handling of imported system dumpers
At least for a few cases (std::string, vector, ...) this can succeed.

Change-Id: Idfa4ced4cb20295472d001181a83373acd89883a
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-01-15 11:13:22 +01:00
Eike Ziller b5b47f7df2 Merge remote-tracking branch 'origin/3.3'
Conflicts:
	src/plugins/cppeditor/cppdocumentationcommenthelper.cpp

Change-Id: I2cf25eba1de149765a6c44ad354d606ce9de512d
2015-01-08 10:38:20 +01:00
Orgad Shaneh ecd9c4c813 Dumper: Fix some more internal dumpers
Change-Id: If17614d1fa451bb93cfe5a6ea06af39986d7ad4d
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-01-08 08:04:23 +01:00