Commit Graph

149 Commits

Author SHA1 Message Date
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
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
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
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
hjk
3d4cedb1f0 Debugger: Fix map dumper with LLDB-320.x
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>
2014-12-03 12:08:08 +01:00
hjk
bf9a3b2020 Debugger: Fix LLDB reference display for LLDB 320.x
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>
2014-11-28 14:55:03 +01:00
hjk
f395bc9076 Debugger: Fix reference dumping with LLDB-300.x
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>
2014-11-26 15:11:31 +01:00
hjk
e6020b7067 Debugger: Report stack after frame switching with LLDB
Change-Id: Ibbaa52dc8c0703f3245cac2ca15b942e3006993a
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2014-11-17 09:45:50 +01: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
bf5f14a4e1 Debugger: Fix QHash display of "compact" keys
Add make std::string usable as "compact" key.

Change-Id: Idbfcf9d299e2dde392025166a20c3d0ab60239a6
(cherry picked from commit 2776536a7e)
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-09-26 09:35:36 +02:00
hjk
4d12c017de Debugger: Wiggle LLDB startup
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>
2014-09-23 10:41:19 +02:00
hjk
1af0f77ea9 Debugger: Wiggle LLDB startup
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>
2014-09-22 18:07:16 +02:00
hjk
245d4b253d Debugger: Fix warn() calls in LLDB bridge
Change-Id: I7e8a571daae6a81efb52e153c8b19e724aa56c55
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-22 18:00:44 +02:00
hjk
2776536a7e Debugger: Fix QHash display of "compact" keys
Add make std::string usable as "compact" key.

Change-Id: Idbfcf9d299e2dde392025166a20c3d0ab60239a6
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-09-12 15:36:01 +02:00
hjk
77c7cac4b6 Debugger: Fix debugger startup on iOS
Task-number: QTCREATORBUG-12580
Change-Id: I8a2a38741719e8cf0b8a098eaa5d76eeb4bb1fb5
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-07-01 12:54:05 +02:00
hjk
281aa9e0d6 Debugger: Add personaltypes.py as default location for local additions
Change-Id: Ib393258970f04f2e829f959adedfbc588a966a10
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-06-24 09:41:16 +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
252048ef01 Debugger: Make char * displayable in separate windows
Task-number: QTCREATORBUG-7313
Change-Id: I8d475dd94a48e7a1d5efe4c2c0d90cb6bdf9b3e2
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-05-28 15:07:59 +02:00
hjk
3ae6c09714 Debugger: Regression cleanup
Sneaked in with 40052046fd.

Change-Id: I711c5b8e6869647a447a5f17f693de571b5f0337
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-05-20 13:01:31 +02:00
hjk
40052046fd Debugger: Rework display length limitation systems
There are two values now, one to limit an entry in the L&E view
(default 100) and a hard upper limit (at 1 mio).

If displayed values are elided, the true length is shown in addition.

Change-Id: I180b70446c18e258c164e5af75b88d4c8b6c53f2
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-05-16 17:50:18 +02:00
hjk
6107fdc276 Debugger: Add "composite" watchers
Multiple expressions can be separated by semicolon,
and arrays allow index ranges given as [a..b] or
with strides [a.(s).b].

Change-Id: I0b7b4ee500a5f6f5027d777b0a1e8ee5a28a7cd5
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-05-13 12:58:35 +02:00
hjk
d2ad6aa972 Debugger: Simplify array dumper user code
Heads up: This switches the argument order to allow a default
argument for the inner type if it can be determined from the
base pointer.

Change-Id: I9bf80fcdd51b5db8e7c65adba551ca667912cd86
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-05-06 13:50:25 +02:00
hjk
41582b1911 Debugger: Work around mis-reading of integral template types
Clang/LLDB toolchain issue: -1 gets recorded and read
as 'int' with value '0xffffffff'.

Change-Id: I070a83c282bc8a46efa011efb73f32cdbf46398c
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-04-11 16:41:03 +02:00
hjk
03c6df1fab Debugger: Fix staticMetaObject extraction with LLDB
When asked for Foo::staticMetaObject, it will find
any *::staticMetaObject. Looking for the mangled name
finds the one we need.

Change-Id: I4508a3c282bc8a46efa011efb73f32cdbf46398c
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-04-11 14:24:35 +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
ef4388d43b Debugger: Fix pointer arithmetic in lldbbridge.py
Cut-and-past-o in a currently unused code path.

Change-Id: I2c690e5010ade7f3ebbb4a94163d7b44da13c10d
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-04-07 12:28:22 +02:00
hjk
26d5059961 Debugger: More robust Qt version extraction with LLDB
Change-Id: I1c690e5010ade7f3ebbb4a94163d7b44da13c10d
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-04-04 16:14:01 +02:00
hjk
b5f4678846 Debugger: Handle failing inferior calls more gracefully
At least for GDB on Windows that's a rather typical situation due to
GDB's "Internal error: pc in read in psymtab, but not in symtab"

Task-number: QTCREATORBUG-11164

Change-Id: If79d586b59e2c1ee37558e8a811091fefc69ac2d
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-04-03 13:41:21 +02:00
hjk
50459e5713 Debugger: Use target not host architecture in QDateTime dumper
Task-number: QTCREATORBUG-11164

Change-Id: I83bd56f91c1e5342e1a755638c794dde7f5b345a
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-04-02 11:00:22 +02:00
hjk
186570a259 Debugger: Fix jump to line with LLDB
Typos and interpreted languages...

Change-Id: I15c197176ade1800474fb1581ef6333ffb2752e1
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-03-27 13:09:43 +01:00
hjk
f9a7bb7bcf Debugger: More robust Qt namespace extraction for LLDB
Change-Id: I3964f15cb4295a64f91e0eb6035d365ee2b9f9bd
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-03-19 13:12:11 +01:00
hjk
358500e7fc Debugger: Move LLDB state reporting to separate function
Change-Id: I4e250173efc1c0df002d2ce94f7e8df57339544b
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-03-19 13:05:38 +01:00
hjk
05d7dd1bb9 Debugger: Synchronize LLDB bridge output
Output coming from spontaneous events should not interfere
with output produces by lengthy display generation.

Change-Id: I2a9e4fa93db131cfdac4cb0eb613c0159214d8be
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-03-19 12:57:07 +01:00
Christian Stenger
6f2c3d9cb3 LLDB: Stop creating zombies when executing dumper auto tests
Change-Id: I8a9d2e9e0027f60a9801ba9a20aab1c5e2991bdb
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-03-14 13:00:55 +01:00
hjk
906b813640 Debugger: Simplify LLDB Qt namespace and version extraction
Change-Id: I00b0e32da56bef613220d98f9d99758b47b3daf5
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-03-12 18:05:52 +01:00
hjk
0abf12ae32 Debugger: Fix base type extraction with LLDB
Change-Id: I0370040879abf948be8594dec4bf267978329bbb
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-03-12 15:11:32 +01:00
hjk
af43f684bd Debugger: Consolidate metaObject recognition
Same code can be used for LLDB and GDB...

Change-Id: I07aae10fec28f01425cc13285504f57aef3afd25
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-03-12 14:31:36 +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
hjk
b7ebfd274f Debugger: Move some common bridge code to dumper base
Change-Id: I9fd988c84bff5e02bc45478994f27a7bddb3358b
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-03-07 13:14:13 +01:00
hjk
8931a14afe Debugger: Select topmost frame with usable data also with LLDB
Task-number: QTCREATORBUG-11597
Change-Id: I5d95c9172e90b82f5671427283cf46e924456c4c
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-03-07 12:49:31 +01:00
hjk
1d1695c2b4 Debugger: Move breakpoint markers with LLDB
Task-number: QTCREATORBUG-11564
Change-Id: I98044c641ad68431176d8ef54e8e1ec1bef296bc
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-03-06 10:44:20 +01:00
hjk
a8a9786b91 Debugger: Add Run-in-Console for LLDB
Task-number: QTCREATORBUG-9650
Change-Id: I74586ca8c89efedbb952218497f7acdae500d3b9
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-03-05 16:03:55 +01:00
hjk
880a834b11 Debugger: Add start with step-into for LLDB
Task-number: QTCREATORBUG-11596

Change-Id: I4561d74524b70bc81345ab9beb60ec7242045509
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-02-28 13:33:49 +01:00
hjk
a19353674c Debugger: Stop process before manipulating breakpoints with LLDB
This seems to be a LLDB/Linux specific problem.

Task-number: QTCREATORBUG-11441
Change-Id: I390e17737a63f53dc1d1e2060ef87a3ad94fedf5
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-02-11 10:44:54 +01:00