Commit Graph

240 Commits

Author SHA1 Message Date
hjk
648a8e82f0 Debugger: Remove DebuggerCommand .arg chaining.
Less stylish options for more uniform user code.

Change-Id: Ie9a6558101383a844efa25ba3ab59b4b824ad89f
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-02-05 14:12:19 +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
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
18c83a61ff Debugger: Fix breakpoint property changes with LLDB
Change-Id: I68ee1b106e1cd6e8ad5ce99b226860c528698520
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-02-05 10:55:45 +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
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
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
ba05edc6bb Debugger: Move LldbEngine::Command to debuggerprotocol
Better re-usable over there.

Change-Id: I75b70054d691771efaf5b19680d8a93d2943b5ba
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-02-02 14:46:16 +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
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
bea159a701 Debugger: Some parser code consolidation
Change-Id: Icd3afb632cb935fdd95f13db91c9c11a3dea732e
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-01-29 15:09:12 +00:00
hjk
1eb507afbd Debugger: Simplify calls to parseChildrenData
Having access to the expanded inames doesn't make a difference.

Change-Id: Ic833f647c2c135f213dd621e28a9be98809e0b04
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
2015-01-29 14:16:13 +00:00
hjk
2f855643a3 Debugger: Use direct access to WatchItems in LLDB engine
Change-Id: If431c9b03113d1958e18d23edf7e6433ca5922de
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-01-29 11:48:45 +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
787b4455c7 Debugger: Modernize lldbengine.cpp
Change-Id: I4d2c7b51cc4beb3edebf6995df1ce269f9c2c8db
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-01-26 13:39: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
3b2d2eae17 Debugger: Re-work breakpoint storage handling
The actual data is now in a TreeModel. As interface to
individual breakpoints there's a new Breakpoint class
essentially providing a checked handle.

On the user code side breakHandler()->foo(bpId) is
replaced by bp.foo().

Change-Id: I82f435bad6301fce85a1d82bf6bf39e9ddba511e
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-01-15 12:19:33 +01:00
hjk
a8ea8d38fe Debugger: Use TreeModel for ModulesHandler
Change-Id: I831f71e7441330e2a6a7f3ddcf89a29517b3b91b
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-01-14 10:00:04 +01:00
hjk
3743211e54 Debugger: Rework register handling
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>
2014-12-18 12:53:46 +01:00
Marco Bubke
2ee9a06f4c Debugger: Use Core::AsynchronousMessageBox
Nested event loops can lead to crashes, so it is better to use a dialog
which does not have have its own event loop.

Change-Id: Icd2390c9026bc1ef88e72a570df5813fe5cbdaa2
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-12-08 12:02:07 +01:00
hjk
6d482bafec Debugger: Remove a soft assert in a valid LLDB code path
Pending breakpoints have zero resolved locations.

Change-Id: I18cecfabe8dcfebb7733030a404f75603464d157
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2014-11-17 14:11:25 +01:00
hjk
17c92cdeef Debugger: Don't retrieve full stack on frame switch with LLDB
Unneeded effort and also re-sets the marker to the top frame
somewhat spoiling part of the result.

Change-Id: Iebaa52dc8c0703f3245cac2ca15b942e3006993a
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2014-11-17 10:41:35 +01:00
hjk
715d3f4e9f Debugger: Fall back to assembler in LLDB
... if source file does not exist. This is the same
logic as for GDB now.

Change-Id: I3e5a3273b571658b4dd4200c9b3a0e9542a16015
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-11-15 13:37:45 +01:00
hjk
9f6f2e7a0e Debugger: Re-enable tooltips for non-local values for LLDB
It works again with the base infrastructure.

Change-Id: I5f8534dcc6eaa6675bd698151a592c0930cc4843
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-11-15 13:36:43 +01:00
hjk
ece15ae846 Debugger: Mention that LLLDB stderr output is unexpected
Change-Id: I21e23c9eab983c19fd9ab31a9fade4105c898de9
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-11-15 10:12:53 +01:00
hjk
c423395044 Debugger: Handle inferior start failing in LLDB
Change-Id: Ia6fb30d5dc4de4dce74affe0266d0fe48076e07c
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-11-15 09:59:21 +01:00
hjk
eecad29245 Debugger: Mention python executable in log output start message
Change-Id: I239b11cc4919ae15746f3059080907e6302c20c3
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-11-15 09:54:14 +01:00
hjk
011ddc09c4 Debugger: Fix async tooltip handling
For now, only the gdb engine can handle complex tooltips
requiring async re-evaluation, cdb and lldb will show
and expand only items that are available in the Locals view.

This patch disables also the save/restore feature for
pinned tooltips.

Task-number: QTCREATORBUG-13255
Task-number: QTCREATORBUG-13052
Change-Id: Ic25616fede0f5c4343a92b631f01e60bfc5e9d81
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2014-11-14 12:58:05 +01:00
hjk
9ba17acc80 Debugger: Replace debuggerCore() by equivalent free functions
One indirection less on the user code side, and easier to export
if needed (partially addressing QTCREATORBUG-13187)

Change-Id: I13ab9f471a3a34da7a6331aefc83f6d02413bfab
Reviewed-by: David Schulz <david.schulz@digia.com>
2014-10-23 14:12:33 +02:00
hjk
55b2bb16dc Debugger: Consolidate RunControl creation
Export factory, de-export plugin, to remove one indirection

Change-Id: I13a46460d07d5ded6b26f2b5ceccd01142fb10e8
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-10-20 10:23:56 +02:00
Eike Ziller
ea27143239 Merge remote-tracking branch 'origin/3.2'
Conflicts:
	src/libs/utils/ipaddresslineedit.cpp
	src/libs/utils/logging.h
	src/plugins/analyzerbase/AnalyzerBase.pluginspec.in
	src/plugins/android/Android.pluginspec.in
	src/plugins/android/androiddeploystep.cpp
	src/plugins/android/androiddeploystep.h
	src/plugins/android/androiddeploystepfactory.cpp
	src/plugins/android/androiddeploystepwidget.cpp
	src/plugins/android/androidpackagecreationfactory.cpp
	src/plugins/android/androidpackagecreationstep.cpp
	src/plugins/android/androidpackagecreationstep.h
	src/plugins/android/androidpackagecreationwidget.cpp
	src/plugins/android/androidpackagecreationwidget.h
	src/plugins/android/javafilewizard.cpp
	src/plugins/autotoolsprojectmanager/AutotoolsProjectManager.pluginspec.in
	src/plugins/baremetal/BareMetal.pluginspec.in
	src/plugins/bazaar/Bazaar.pluginspec.in
	src/plugins/beautifier/Beautifier.pluginspec.in
	src/plugins/bineditor/BinEditor.pluginspec.in
	src/plugins/bookmarks/Bookmarks.pluginspec.in
	src/plugins/clangcodemodel/ClangCodeModel.pluginspec.in
	src/plugins/clangcodemodel/clanghighlightingsupport.cpp
	src/plugins/clangcodemodel/clangsymbolsearcher.cpp
	src/plugins/classview/ClassView.pluginspec.in
	src/plugins/clearcase/ClearCase.pluginspec.in
	src/plugins/cmakeprojectmanager/CMakeProjectManager.pluginspec.in
	src/plugins/cmakeprojectmanager/cmakeeditorfactory.cpp
	src/plugins/cmakeprojectmanager/cmakehighlighter.cpp
	src/plugins/coreplugin/Core.pluginspec.in
	src/plugins/cpaster/CodePaster.pluginspec.in
	src/plugins/cppeditor/CppEditor.pluginspec.in
	src/plugins/cppeditor/cppfilewizard.cpp
	src/plugins/cpptools/CppTools.pluginspec.in
	src/plugins/cpptools/cpphighlightingsupportinternal.cpp
	src/plugins/cpptools/cppmodelmanagerinterface.cpp
	src/plugins/cpptools/cppmodelmanagerinterface.h
	src/plugins/cvs/CVS.pluginspec.in
	src/plugins/debugger/Debugger.pluginspec.in
	src/plugins/designer/Designer.pluginspec.in
	src/plugins/diffeditor/DiffEditor.pluginspec.in
	src/plugins/emacskeys/EmacsKeys.pluginspec.in
	src/plugins/fakevim/FakeVim.pluginspec.in
	src/plugins/genericprojectmanager/GenericProjectManager.pluginspec.in
	src/plugins/git/Git.pluginspec.in
	src/plugins/git/gitorious/gitorious.cpp
	src/plugins/git/gitorious/gitorious.h
	src/plugins/git/gitorious/gitoriousclonewizard.cpp
	src/plugins/git/gitorious/gitorioushostwidget.cpp
	src/plugins/git/gitorious/gitorioushostwidget.h
	src/plugins/git/gitorious/gitorioushostwizardpage.cpp
	src/plugins/git/gitorious/gitoriousprojectwidget.cpp
	src/plugins/git/gitorious/gitoriousprojectwidget.h
	src/plugins/git/gitorious/gitoriousprojectwizardpage.cpp
	src/plugins/git/gitorious/gitoriousprojectwizardpage.h
	src/plugins/git/gitorious/gitoriousrepositorywizardpage.cpp
	src/plugins/git/gitorious/gitoriousrepositorywizardpage.h
	src/plugins/glsleditor/GLSLEditor.pluginspec.in
	src/plugins/glsleditor/glsleditorfactory.cpp
	src/plugins/glsleditor/glslfilewizard.cpp
	src/plugins/helloworld/HelloWorld.pluginspec.in
	src/plugins/help/Help.pluginspec.in
	src/plugins/imageviewer/ImageViewer.pluginspec.in
	src/plugins/ios/Ios.pluginspec.in
	src/plugins/macros/Macros.pluginspec.in
	src/plugins/mercurial/Mercurial.pluginspec.in
	src/plugins/perforce/Perforce.pluginspec.in
	src/plugins/projectexplorer/ProjectExplorer.pluginspec.in
	src/plugins/pythoneditor/PythonEditor.pluginspec.in
	src/plugins/pythoneditor/pythoneditorwidget.cpp
	src/plugins/pythoneditor/wizard/pythonfilewizard.cpp
	src/plugins/qbsprojectmanager/QbsProjectManager.pluginspec.in
	src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp
	src/plugins/qmakeprojectmanager/QmakeProjectManager.pluginspec.in
	src/plugins/qmakeprojectmanager/profileeditorfactory.cpp
	src/plugins/qmldesigner/QmlDesigner.pluginspec.in
	src/plugins/qmljseditor/QmlJSEditor.pluginspec.in
	src/plugins/qmljseditor/qmljseditorfactory.cpp
	src/plugins/qmljstools/QmlJSTools.pluginspec.in
	src/plugins/qmlprofiler/QmlProfiler.pluginspec.in
	src/plugins/qmlprojectmanager/QmlProjectManager.pluginspec.in
	src/plugins/qnx/Qnx.pluginspec.in
	src/plugins/qtsupport/QtSupport.pluginspec.in
	src/plugins/remotelinux/RemoteLinux.pluginspec.in
	src/plugins/resourceeditor/ResourceEditor.pluginspec.in
	src/plugins/resourceeditor/resourcewizard.h
	src/plugins/subversion/Subversion.pluginspec.in
	src/plugins/tasklist/TaskList.pluginspec.in
	src/plugins/texteditor/TextEditor.pluginspec.in
	src/plugins/texteditor/basetexteditor_p.h
	src/plugins/texteditor/basetextmark.cpp
	src/plugins/texteditor/codeassist/basicproposalitemlistmodel.h
	src/plugins/texteditor/codeassist/defaultassistinterface.h
	src/plugins/texteditor/codeassist/iassistproposalitem.cpp
	src/plugins/texteditor/itexteditor.cpp
	src/plugins/texteditor/itexteditor.h
	src/plugins/texteditor/itextmark.cpp
	src/plugins/texteditor/plaintexteditor.cpp
	src/plugins/texteditor/plaintexteditor.h
	src/plugins/texteditor/texteditoractionhandler.cpp
	src/plugins/todo/Todo.pluginspec.in
	src/plugins/updateinfo/UpdateInfo.pluginspec.in
	src/plugins/valgrind/Valgrind.pluginspec.in
	src/plugins/vcsbase/VcsBase.pluginspec.in
	src/plugins/welcome/Welcome.pluginspec.in
	src/plugins/winrt/WinRt.pluginspec.in
	tests/auto/debugger/temporarydir.h

Change-Id: I254af8be8119fe9855287909e17d4b8ca9d2fc2f
2014-10-14 15:36:16 +02:00
Eike Ziller
8295b503be License update
Change-Id: I3c22ef2685d7aa589f5d0ab74d693653a4c32082
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
2014-10-09 11:41:44 +02:00
hjk
10c8d5f0ca TextEditor: Rename BaseTextEditorWidget to TextEditorWidget
... and some of the related implementation details

Change-Id: I1f03aa5acf2d3fb2cfc2a6a7845f3d3578b0408d
Reviewed-by: David Schulz <david.schulz@digia.com>
2014-09-29 14:54:32 +02:00
hjk
953cdb971f TextEditor: More BaseText* -> Text* renamings
*Document* and *Layout* classes, all basetext* files

Change-Id: I1c6e376733a434fcb5c7f19c6210dfa031eeafde
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-09-26 10:12:51 +02:00
hjk
970264a88e Debugger: Operate tooltips on TextEditorWidgets, not TextEditor
Less indirection.

Change-Id: Ifbd7195e853d02bfd6562c817fc7f30079913faf
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-19 16:00:24 +02:00
hjk
3bafbe710f Debugger: Fix Android startup
Change-Id: I495412434ccffdb33528bbbe030c7a4bfa7e387c
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-19 15:52:58 +02:00
hjk
e5e8693148 Debugger: Merge two remote setup communication paths
Success and failure paths are very similar.

Change-Id: Iebf218f64401884c014f1f7745d504183018addd
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-19 13:00:59 +02:00
hjk
6431ab2c79 Use Qt 5's QStringList::join(QChar)
Less typing and less cycles than join(QString) where appropriate

Change-Id: I6ebc0e17e4d7fd9845864dd95b7de4ba4dad6906
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-08-25 08:21:14 +02:00
hjk
5ac407eecc Debugger: Reduce line noise
Move some function out of the DebuggerCore "namespace", to avoid one
indirection and removes clutter in the calling code.

Change-Id: I1c870d5c7eeade32fa63dedf581490fbb090cd6a
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-07-28 15:48:15 +02:00
hjk
bf5e43be94 TextEditor: Merge ITextEditor and BaseTextEditor
Adjust all callers, de-export BaseTextEditorAnimator

Change-Id: I2329d976c1398e2449844bb480a4d4ed29859506
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2014-07-25 13:45:55 +02:00
hjk
f0b2d6535e Debugger: Rework editor tooltips handling
Fix expansion and updating.

Persistence and non-locals are still lacking.

Change-Id: I74e25199d50350516afc686a05836e239bfc8acb
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-07-11 12:19:01 +02:00
hjk
dbae15684f Debugger: Simplify tooltip interface
Change-Id: I7ce688e56fb516ef6e77ee2e4f56d9b56379918b
Reviewed-by: David Schulz <david.schulz@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-07-09 13:37:45 +02:00
hjk
fc46406fc8 Debugger: Allow loading dumpers from a file directly
Instead of requiring the user to add the required python
code to load them manually let him specify a file directly.
This also makes the feature accessible to LLDB which needs
a slightly different syntax.

Task-number: QTCREATORBUG-12492
Change-Id: I12621b1cea2429476b0865bcbcb739a238dcf6af
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2014-06-24 08:48:15 +02:00
hjk
453bb4ebe5 Debugger: Honor max stack depth settings for LLDB
Task-number: QTCREATORBUG-12416
Change-Id: I1fb908edaff8fbea55a6d19cb89342e94a7ab991
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-06-17 07:46:03 +02:00
hjk
d57bb24354 Debugger: Better fall back for LLDB without remote support
Change-Id: I517052bb795674d4beda05e3909dc05afc99bfe3
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-06-03 17:07:03 +02:00
hjk
60f5b5afc5 Debugger: Fail more gracefully on "ill" LLDB engines
Less need to use the hard Debug->Abort

Change-Id: Ib019792063924549ace58a63ccef994dbfaa00dc
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-06-03 17:06:43 +02:00
hjk
05f72338f3 Debugger: Handle the <more> item in LLDB stack view
Task-number: QTCREATORBUG-11915
Change-Id: I7216987c68802c9d3b74fbd5b543ea4aa5953ff8
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-04-09 16:57:32 +02:00
hjk
b562d1a470 Debugger: Make mixed breakpoints last longer than one run
Task-number: QTCREATORBUG-11184

Change-Id: Iaf3b3e2268cf34185f794997a35b6f0eedcccc6b
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-03-25 17:26:28 +01:00
hjk
72d1998824 Debugger: Implement "Create Full Backtrace" for LLDB
Task-number: QTCREATORBUG-11642
Change-Id: I92d7cde1e5021ab06ad72a00645184c41dae0e6b
Reviewed-by: Ulf Hermann <ulf.hermann@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-03-11 16:56:23 +01:00
hjk
4202b94dbf Debugger: Let creator trigger the locals update also with LLDB
Makes the code path more similar to the GDB side and allows
skipping register refreshs when the view is invisible.

Change-Id: Ia9210ee1709dbc5c9c7a6870bf8a54484261fee0
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-03-11 16:29:28 +01:00