Commit Graph

518 Commits

Author SHA1 Message Date
Orgad Shaneh
237cfd1f77 Dumper: Add a dumper for CPlusPlus::Class
Change-Id: I619d31f307844349095c81defc675c57fcaa4de0
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-05-19 14:53:53 +00:00
Ray Donnelly
f5dcc93b7e Debugger: Handle case of os.path.sep being '/'
On MSYS2, if QtCreator is launched from one of the msys2 shells
then the MSYSTEM env. var is set and our Pythons set os.sep and
os.path.sep to '/' so that it aligns with the default separator
of those shells.

fromNativePath(str) then fails to convert '\' seprators embedded
in binaries since str.replace('/', '/') is a noop. The operation
we want here is to convert all '\' to '/' anyway so this is more
explicit regardless of any opinions on our choice to dynamically
vary os.sep and os.path.sep

Change-Id: I76c05b188abca41c6a1b516c68b584e0c06e7235
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-05-11 11:23:11 +00:00
hjk
5c58293a36 Debugger: Some Python 3 support for PdbEngine
Change-Id: I052bc093086a5da0b2cbd4e99df32e42627ceaf5
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-05-08 10:50:34 +00:00
hjk
c5ac8fc21b Debugger: Use simpler construction of basic types in LLDB dumper
Cheaper, more robust.

Change-Id: I989853dc288864f4088f09f60c8c5b717e4faef0
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-05-08 10:35:08 +00:00
Orgad Shaneh
bba6515562 C++ Dumper: Fix potential endless loop on invalid pointer
Change-Id: I554f2cd0b97c549767453ad3df290d93da483360
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-05-07 12:46:02 +00:00
Eike Ziller
4058ff6fe9 Merge remote-tracking branch 'origin/3.4'
Conflicts:
	src/libs/extensionsystem/pluginview.cpp

Change-Id: I410156c1003d5dc81e915110c6d432bcd71da010
2015-05-07 14:42:46 +02:00
hjk
e855de4037 Debugger: Fix GDB hanging
This partially reverts commit e33da6a6b3.
GDB seems to hang while executing str(some_pointer) in some setups.

Task-number: QTCREATORBUG-14374
Change-Id: Ia678533b9122e505b21ef6659d404239995ddb81
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-05-06 06:19:00 +00:00
Orgad Shaneh
4752c809c9 C++ Dumper: Support int in template arguments
e.g. Temp<int>

Change-Id: I3d737a696396548a896685aa48fc99a1c3289a6c
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2015-04-30 06:59:01 +00:00
Orgad Shaneh
3b0a75c9e0 Dumper: Fix internal dumpers with Python 3
Change-Id: Ic38a827ce32e17fc7038ea974e05c77959367342
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-04-27 06:17:20 +00:00
hjk
7697bd4b6f Debugger: Remove broken old LLDB QSet dumper workaround
Task-number: QTCREATORBUG-13153
Change-Id: Ifc1393a9bedd0be793d752ad6af85221f5f8d247
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-04-23 12:09:07 +00:00
Eike Ziller
50fe3585a8 Merge remote-tracking branch 'origin/3.4'
Conflicts:
	src/libs/timeline/qml/MainView.qml
	src/plugins/git/gitclient.cpp

Change-Id: I0b6ec7b9a592014deb0dd2e1145b19dd6753b1c3
2015-04-15 17:45:47 +02:00
hjk
89661af04e Debugger: Fix one call to check(False)
Not much harm done, the code was meant to raise an exception anyway...

Change-Id: I81db4081b4ca583e46a826aaee2fc8fa3f186a11
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-04-15 11:37:35 +00:00
hjk
6965fc30b1 Debugger: Disable parts of QDate* dumper for GDB on 32 bit
Older versions of GDB (~GDB 7.4 on 32 bit) will cause segmentation
faults in inferior calls due to misaligned %ebx values in an SSE
call in qstring.cpp:findChar.

Change-Id: I44492106080f12e645f9d57828438ec70fd66ca6
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-04-15 11:07:30 +00:00
hjk
c50286db3c Debugger: Remove workaround to get dynamic type in std::*_ptr
Seems to not be needed anymore with recent GCC, and makes the
LLDB test pass on Linux.

Change-Id: If793e726656df8b319d2f50e1986e0a92f68411d
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-04-15 07:46:14 +00:00
hjk
c5de4fa358 Debugger: Adjust std::__1::unordered_map dumper
Implementation seems to have changed.

Change-Id: I196d02cddcccdd7765e5a098bb98f894122781a1
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-04-15 05:53:22 +00:00
hjk
e452ebde97 Debugger: Fix std::unordered_{map,set} dumper for LLDB on Linux
Change-Id: Id96d02cddcccdd7765e5a098bb98f894122781a1
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-04-15 05:53:12 +00:00
hjk
fc23148202 Debugger: Make access to non-existing member throw with LLDB
This mimics GDB behavior.

Change-Id: I929a87ff227e4af7cfbfbbcd2a8e72c9999e9338
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-04-14 12:39:20 +00:00
hjk
dcf3ba5009 Debugger: Explicitly report chars as integer values with LLDB
This brings it into line with GDB output and is needed in
the frontend to provide normal integral value base changes.

Change-Id: I17adc7730419648d45c0d5866311de33bf01a7f0
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-04-14 11:09:06 +00:00
hjk
f7d794dc9d Debugger: Next attempt at robust array dumping
In the fallback case now really go back to explicit object-at-address
construction. LLDB on Linux doesn't seem to like implicit pointer
arithmetics.

Change-Id: I3be6b0b21b35b9b9141440d4a11e9e889bb2f4bb
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-04-14 09:41:26 +00:00
hjk
c9cce0b541 Debugger: Simplify LLDB test loop handling
We know that we expect a frame with valid debug info.

Change-Id: I51079ca4db87df05c93464fd46e5add1f756cba7
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-04-14 09:41:10 +00:00
hjk
315585056b Debugger: Properly retrieve signed internal values with LLDB
Fixes the QLinkedList dumper.

Change-Id: I1be509c16ed96edb02c540d9c87b9506e496ed2c
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-04-14 05:59:55 +00:00
hjk
53e2f9b428 Debugger: Use a dummy name for temporary SBValues
Unlike SBValue.CreateValueFromAddress, SBTarget.CreateValueFromAddress
does not seem to like None as name. '@' gets accepted, though,
and is unlikely to appear as real C++ identifier.

Change-Id: I74f6d218f73222af3308d2acb5fbe9ff0a0f6c4b
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-04-14 05:55:28 +00:00
hjk
e33da6a6b3 Debugger: Remove GDB specific access test in generic pointer code
The field checked for does not even exists in lldb.SBValue.

Change-Id: I062ccf62da2e2ea3f011d0b841cba0e87f7c6fa9
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-04-14 05:55:15 +00:00
hjk
c24640bae1 Debugger: Use SBTarget.CreateValueFromAddress instead of SBValue
SBTarget.CreateValueFromAddress was not supported by older
versions of LLDB. Unfortunately, we still can't use
SBTarget.CreateValueFromExpression.

Change-Id: I982021531a2ab070aa279dd17e9714f86efe83cc
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-04-13 13:26:19 +00:00
hjk
afcf2afe5a Debugger: Rename local 'bytes' to 'rawBytes' variable in dumper
'bytes' has special meaning in Python.

Change-Id: I9ff7c56488c9d29e42b2c7a12e40b45815be2a76
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-04-13 12:40:42 +00:00
Eike Ziller
11590a8c5f Merge remote-tracking branch 'origin/3.4'
Conflicts:
	src/plugins/cmakeprojectmanager/cmakeproject.cpp

Change-Id: I09c5a047f7d91fecfc58c78df438afcdcdc0a8d7
2015-04-13 10:53:03 +02:00
hjk
1de861f06b Debugger: Make QFiniteStack plot work without requiring expansion
Consistent with QVector etc.

Change-Id: Id616c9003c0d561ec941f9961dee122059d75dc3
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-04-13 06:55:11 +00:00
hjk
d15e4ff2c9 Debugger: Replace block access to array data by plain loop.
This makes the GccExtension dumper test pass with GDB

Change-Id: Ia1319e878416bea8b162a1a9eef1271cb7bebc63
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-04-08 05:31:27 +00:00
hjk
bfac365ebb Debugger: Fix parameter passing to LLDB dumper tests
Change-Id: Iae342ffe68385de877c7a1e9a7e61e7d4889f731
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-04-02 14:56:32 +00:00
hjk
e6f73164c3 Debugger: Adjust QVariant2 dumper test
Take new QPolygon{,F} dumpers into account, also make QUrlPrivate
field accessible,

Change-Id: I2b5c122895c3ee389ba939eaeffcd613fa206009
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-04-02 14:07:24 +00:00
Christian Stenger
4deadb5f8b Dumper: Test: Fix execution of dumper tests for LLDB
Change-Id: Id4f437fe17d7989c15ad223c20605773411a1142
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-04-02 13:57:27 +00:00
hjk
3658bdac89 Debugger: Use primitive internal widget instead of matplotview
This practically removes any functionality beyond plain plot display,
but does that at least reliably, cross-platform, without dependency
on 3rd party python packages.

Change-Id: Iaff2f78595394522f32264c642df20dd48b83f8b
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-04-02 12:25:04 +00:00
hjk
879bb9adcf Debugger: Remove comment on broken GDB 7.2
We require 7.5.1 now, so the case is uninteresting.

Change-Id: I40bf1c3d531b83998a45e7476ed48397b23b4ae6
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-04-02 10:34:02 +00:00
Eike Ziller
fcc6b11230 Merge remote-tracking branch 'origin/3.4'
Conflicts:
	qtcreator.pri
	qtcreator.qbs

Change-Id: Iaff42d30008db13ecb685e5157c82292fe48b038
2015-04-01 11:53:26 +02:00
hjk
d66e063165 Debugger: Make C array data plottable
Change-Id: Ib4519f0e64504ec0e3dccd89978acca5134b2932
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-04-01 09:09:43 +00:00
Orgad Shaneh
76a8606c38 Dumper: Add a dumper for CPlusPlus::FullySpecifiedType
Only prints the name for NamedType and PointerType

Change-Id: I8d4c3548b0260d0dfc091b326b5023bcfd6d46bd
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-04-01 06:56:56 +00:00
Orgad Shaneh
e22d0e82df Dumper: Add a dumper for CPlusPlus::PointerType
Change-Id: Ibc868a54326647184a30a796a487e218db7e968f
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-04-01 06:56:31 +00:00
Christian Stenger
de8422acb6 Lldb: Don't trigger continuations when already shutting down
Task-number: QTCREATORBUG-14219
Change-Id: Ic4dc3bd3f429164f3e56a43dd2b20d409d69fa49
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-04-01 06:19:49 +00:00
Eike Ziller
a7f48ac133 Merge remote-tracking branch 'origin/3.4' 2015-03-31 09:09:32 +02:00
hjk
5dcd9fe694 Debugger: Change plot display of array data to use lines between dots
Change-Id: I6d2cf5ca7d3f4a404a3c112a140aeae067cb3b6d
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-03-30 11:29:02 +00:00
Orgad Shaneh
257f62b708 Dumper: Fix adding quotes to C++ literals
Using plain '"' makes the name empty (value=\"\"Foo\"\").

Encode it to hex instead.

Change-Id: I5fec9d487f119ba5ca9b5aaa95b50e45a73bafa0
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-03-30 10:41:30 +00:00
Orgad Shaneh
179d4aea67 Dumper: Add a dumper for CPlusPlus::QualifiedNameId
Change-Id: Iba05dafcbeda45b54fb09c4800ab0bd634e6fe0d
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-03-27 07:09:32 +00:00
hjk
cc469f6466 Debugger: Robustify extraction of integral values using LLDB
Change-Id: Ieabad21e5e00bef12eb51046235890840b5a77a1
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-03-26 15:02:51 +00:00
hjk
00199039e7 Debugger: Fix display of expandable items in GDB and LLDB
Move common code to dumper.py and debuggerengine.cpp and
fix it there.

Change-Id: I20d91d1aa7400fbdb27938c10cf40c8f6019df0a
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-03-26 15:00:23 +00:00
hjk
55712e3ca9 Debugger: Fix retrieval of single expanded items
It was falling into the full update branch as the passed
parameter was not a list anymore.

Change-Id: I314beb3a68f8791483a599c7d5782fd454983840
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-03-26 12:30:53 +00:00
Eike Ziller
65cd5381d9 Merge remote-tracking branch 'origin/3.4' 2015-03-26 12:51:06 +01:00
hjk
939e5e3b19 Debugger: Fix stack display on interrupt with LLDB
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>
2015-03-26 07:59:57 +00:00
hjk
7ef5831090 Debugger: Fix enhanced display of QModelIndex
Normal members accidentally occurred twice, and since the Enhanced
display this is now opt-in, we can show the expensive parent(), too.

Change-Id: Idcf87882a68a307aa65ac0704621a7c789380890
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-03-25 12:36:44 +00:00
Orgad Shaneh
430914b478 Dumper: Improve C++ literal dumpers
* Show arguments for template name
* Show qualified names

Change-Id: I3d7fc5a1526e5ae7c68ea991d8e199cf32e08a4c
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-03-24 15:02:17 +00:00
hjk
0c2a1ab3be Debugger: Adjust QFile dumper to library changes
Change-Id: I44ac0de970a41fc7da0453ed853396a6943ffb0b
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-03-24 12:51:03 +00:00