Commit Graph

1394 Commits

Author SHA1 Message Date
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
Orgad Shaneh
8f920be61b Dumper: Fix PPToken dumper
Change-Id: Ia6a062319fdcd84a16e83e8f9c96a440f7e4dec9
Reviewed-by: hjk <hjk121@nokiamail.com>
2015-01-05 08:36:31 +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
8815990903 Debugger: Fix std::unordered_* dumpers with GCC 4.9.1
Change-Id: I5d5ed9cfc68af061970b0055b76cb563ca04ee53
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2014-12-12 13:54:37 +01:00
hjk
20396d7809 Debugger: Use Python for GDB stack extraction in native mixed mode
Change-Id: I7ca4a080c9b5e5992f44e5f3d8aa5af7296abe99
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2014-12-12 12:36:41 +01:00
hjk
62d21d123c Debugger: Remove traces of outdated attempt at combined stepping
Has not been usable for a while and will be superseded by
"native" mixed stepping.

Change-Id: I2902a98b7ad4e4b29e389e54fb6488bf711840dd
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2014-12-12 10:53:43 +01:00
hjk
48915c6231 Debugger: Rename variables named 'type' in dumpers
It's confusing in the presence of the global function of that name,
and it's better to distinguish type names and type objects anyway.

Change-Id: I3e0674dbc96a8e2b245ed61fabd2fe7cac5a72e5
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2014-12-12 10:27:46 +01:00
hjk
5e19f322cf Debugger: Move listOfLocals to Dumper class
We will need access to more dumper data later.

Change-Id: Id8fe09b192ac7d2ae822a0323cda13c0e2ff81e3
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2014-12-12 10:27:18 +01:00
hjk
48c6decb07 Debugger: Remove some spaces in debug output
Change-Id: I69c4a00d4dfef91aa2727c295246845bef70b4bc
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-12-12 10:14:32 +01:00
hjk
62803ada4d Debugger: Add some convenience helpers for python dumpers
Change-Id: I7fc35ea571895024e9da597d30167e02eda7df47
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2014-12-12 10:08:42 +01:00
hjk
7b1c4d65b1 Debugger: Use stricter access test in pointer pretty printer
Change-Id: I34901ece94e9ab1d8ae929fda33ef1ee647d9d75
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-12-12 09:53:38 +01:00
Eike Ziller
541d00453a Merge remote-tracking branch 'origin/3.3'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/plugins/projectexplorer/projectexplorer.cpp
	src/shared/qbs

Change-Id: I6d91042bb48314d00be721099aed19feca74e0ce
2014-12-10 13:20:02 +01:00
hjk
6d6e8de4a0 Debugger: Use Python instead of GDB/MI to retrieve stack
This will be useful to create artificial QML stack frames.

Change-Id: I41cb87f8dea69d88695fea46a1ae2b0270cbec1a
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2014-12-08 13:04:24 +01:00
hjk
d9a527f8ad Debugger: Fix QV4::Value dumper
Only 64 bit for now.

Change-Id: I622ff5ab8632a73901e83f5331dcd2c3ea129d3c
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2014-12-03 15:57:36 +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
a4a7a4b25f Debugger: Add command for simpler dumper reloading
... to facilitate shorter round trips in dumper development.

Change-Id: Ie457293fd137528d74008fc11137b47d92f3859d
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-12-02 10:40:10 +01:00
hjk
f9f2a75499 Debugger: Fix QRegion dumper on 32 bit for Qt < 5.4
Change-Id: I2554ae77154d88185120bf661f9e732485d92a28
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2014-12-02 10:39:01 +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
298e2de7df Debugger: Centralize handling of optimized out values with GDB
There were a couple of situation where the is_optimized_out flag
was not used and later produced (caught) exceptions on access,
or where the still availably type was not shown.

Change-Id: I7ad5aa09a19357e50739d9fdf32f7423e30fe011
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2014-11-18 16:14:50 +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
hjk
195400b42e Debugger: Explicitly convert division result to int in dumper
This can cause "TypeError: 'float' object cannot be interpreted as
an integer" otherwise.

Change-Id: Icae026f8f47edb686e22ce417f3bbdf41bbf0bc1
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-11-15 13:29:51 +01:00
hjk
7066e3348d Debugger: Improve tooltip for out-of-scope items with gdb
Previously, hovering over 'i' when stopped in main()

   int foo() { int i; }
   int main() {}

produced a tooltip without contents, now there is an
item saying "<not accessible>"

Change-Id: Id4de72541f74af93ba65c2a9508cf21e1dcd6569
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2014-11-14 13:38:07 +01:00
hjk
1fef3c41b9 Debugger: Fix QRegion dumper for Qt 5.4
The layout has changed in ee324e4ed527.

Change-Id: I4b5f47f6526bf1218fdb79dc625f7482af21012b
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-11-07 13:57:10 +01:00
Orgad Shaneh
4336f8874e Dumper: Adapt Token dumper 3.2
Change-Id: If7d6ba7265620edb14d258884b26578c36da2651
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2014-10-31 11:13:26 +01:00
hjk
6aa84464f6 Debugger: Be more verbose in dumper debug output
One of the should-not-happen situations seem to happen.
Add extra output to help to track it down.

Change-Id: I40bad85ce2fbaf1f02043b3d97f657461f5a1995
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-10-21 09:38:55 +02:00
hjk
65ebdc7e03 Debugger: Fix recent typo in putSimpleCharArray
The joys of scripting languages without compile time checks.

Change-Id: Ic9405d549f3e60d5b834350fa3bce1d4d4609747
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-10-14 21:09:50 +02:00
Orgad Shaneh
1ff1b8dbfd Debugger: Remove unused values from DebuggerStartMode
Change-Id: I84ec3dea504e51bb925c925564aa9b5c84133fbf
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-10-14 18:19:38 +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
hjk
27d3d5140f Debugger: Add QVarLengthArray dumper
Change-Id: I817ccd432a81ea0bf7432e6660a049fd41c926ec
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-10-13 21:36:50 +02:00
hjk
392b3f65d2 Debugger: Speed up reading of 0 terminated blobs in dumpers
Change-Id: Iebc64c21f4dd6f4876989e57d3a347b96e1bd449
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-10-13 09:22:23 +02:00
hjk
1baca8e797 Debugger: Add dumper for Qt3's (sic!) QString
Change-Id: I24d266587425a5c50ec3dcb548a29877730cbdff
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-10-10 13:25:02 +02:00
hjk
0691bf93b0 Debugger: Remove unused dumper code
Change-Id: Idc2d17e34bf5666c56d6f54b657867f1b0ecf943
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-10-10 11:37:28 +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
86918e9a28 Debugger: Add dumper for CPlusPlus::Symbol
Change-Id: I25404bff6b53e29fa13ee35787fb6c98209a408e
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-25 17:18:29 +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
68106a7d31 Debugger: Show at least sizes for libc++'s std::map
Change-Id: I91f3ece335ef660e62e93dcbbeff18dc5b0c46f0
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-22 18:00:56 +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
dbab3dc2e9 Debugger: Add a README to help with dumper command line use
Not exactly the intended use, and whence not part of the docs.

Change-Id: I622c3aef637700c895e37f79cc6ffac7b2cd5205
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-18 13:33:57 +02:00
hjk
1ee2759067 Debugger: Fix boost::unordered_set dumper
Change-Id: Ib356baed758437f5b549df060ca3ee62ee61b9fb
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-15 12:12:13 +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
aba1d0a1cb Debugger: Use hard string limit for displayed strings
Currently 100000 to balance between usability (~14sec here)
and usability (e.g. size of typical source text files)

Change-Id: I8a54c81b104a87ec03babf85cbda2e6cea7d3f70
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-04 17:19:37 +02:00
hjk
0102455fd0 Debugger: Fix a few Creator related dumpers
Change-Id: I53d857119872200938c352dbceb8a327dee2a7eb
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-01 23:36:44 +02:00