Commit Graph

905 Commits

Author SHA1 Message Date
Christian Stenger
c14c1cfc16 Dumper: Fix expected symbol when using procedure linking table
Change-Id: Ib0aee418d515d58e6ad949a7cc86b21edb3bed80
Reviewed-by: hjk <hjk@qt.io>
2016-12-19 16:31:28 +00:00
David Schulz
c2b89ae3b2 Debugger: Workaround missing bitfield cdb api
Change-Id: Ifb34a3e8adaf11c5c82ea822a9a332ca7fb1f15e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-12-19 12:41:00 +00:00
hjk
ffbe6148e8 Debugger: Inline putStringValueByAddress into its only user
Change-Id: I858f113507ad5712962dc6568e28230ff6dc2916
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-12-19 10:37:32 +00:00
hjk
fb57391767 Debugger: Make gdbbridge fetchVariable output similar to lldbbridge's
Change-Id: I11fc7d163dbd6b7deb5e88cac65dc61df3352411
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-12-19 10:37:16 +00:00
David Schulz
b8b6f348e0 Debugger: Add dumper for msvc std tree iterator
Change-Id: I39a655d04f1c24448c3db65dca5097a9b482b5d9
Reviewed-by: hjk <hjk@qt.io>
2016-12-16 13:43:57 +00:00
David Schulz
79ae56f52b Debugger: Add msvc dumper for std unordered set and map
Change-Id: I8d1e7e08bbc55a2ce89311dcd23d9b9792e22e1e
Reviewed-by: hjk <hjk@qt.io>
2016-12-16 13:43:51 +00:00
David Schulz
1c558ae7a7 Debugger: Use direct memory access for std tree types
Change-Id: I98acf000c612831401c01a0a30ed50c18d92c8c5
Reviewed-by: hjk <hjk@qt.io>
2016-12-16 13:43:45 +00:00
hjk
996a697094 Debugger: Fix QObject property extraction in namespaced Qt builds
Bail out on error results as early as possible.

The accessor always exists in libQt5Core, but it can't be found
when using a wrongly mangled name. Use the right one, and add
another sanity check before actually using the function.

Change-Id: I57975be188ca6b03836c0968e59d9603b0eecf27
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-12-16 09:00:03 +00:00
hjk
5c2a7b57e4 Debugger: Mimic parts of lldbbridge in gdbbridge
Make code more similar for later sharing.

Change-Id: I260e10ba1b613dfcebc45bb1a268b6fcebbde353
Reviewed-by: hjk <hjk@qt.io>
2016-12-16 07:41:34 +00:00
hjk
c2eada278e Debugger: Fix Window grabbing on GDB
Needs to make namespace detection work without valid frame

Task-number: QTCREATORBUG-17326
Change-Id: Ia7c7017db4ef384d4f246e11a5601d01f4f366f1
Reviewed-by: hjk <hjk@qt.io>
2016-12-15 17:22:18 +00:00
hjk
0e6c9d26f1 Debugger: Fix pointer arithmetic in dumper framework
Task-number: QTCREATORBUG-17428
Change-Id: I1e3a682a6f412af51e191dc783b89ff266020e3b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-12-14 14:23:37 +00:00
David Schulz
03963ae31d Debugger: Directly access memory for msvc std::string dumper
Change-Id: I9c1a0b1dfd49dc4278ef20dcb5968d49be712673
Reviewed-by: hjk <hjk@qt.io>
2016-12-14 06:43:50 +00:00
Orgad Shaneh
05d037a71a Dumper: Re-add Dumper.templateArgument()
Removed in 2244e2b26c. Required for
backward compatibility.

Change-Id: I7255002ad1d6e6b4d04f1fb2a8fa96e3eba65d6b
Reviewed-by: hjk <hjk@qt.io>
2016-12-13 13:26:12 +00:00
David Schulz
16b44c80f6 Debugger: Update subtree if partial variable is requested
Instead of dumping the complete locals just dump the subtree
with the partial variable.

Change-Id: Ieac5f62efd87144bbea7a6a559d8be8d48d9084e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-12-13 09:58:52 +00:00
David Schulz
19a6979acd Debugger: Remove unused nativeValue property
Change-Id: I6c36db6fe14e859b0686ae93a0214e0051b5af39
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-12-13 09:22:25 +00:00
Eike Ziller
c175f1e62f Merge remote-tracking branch 'origin/4.2'
Conflicts:
	src/plugins/ios/iosdevice.cpp
	src/plugins/ios/iossimulator.cpp
	src/plugins/projectexplorer/projectwindow.cpp
	src/plugins/qmakeprojectmanager/librarydetailscontroller.cpp
	src/shared/qbs

Change-Id: Ie98e2401a2259903141a13170c78388f2da467d2
2016-12-09 12:42:01 +01:00
hjk
2497f5ea1d Debugger: Remove unused createBitfieldValue function
Change-Id: Ie439d9cd551c33e9c5db6c16e8d221d2c75a7218
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2016-12-07 10:17:47 +00:00
hjk
d98d9025b8 Debugger: Fix environment passing with LLDB
Change-Id: Ic51a5ee1b9ef69b60279f045175be6d59b53582b
Reviewed-by: Filipe Azevedo <filipe.azevedo@kdab.com>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2016-12-07 07:39:44 +00:00
Eike Ziller
8f0ddff1cc Merge remote-tracking branch 'origin/4.2'
Conflicts:
	qbs/modules/qtc/qtc.qbs
	qtcreator.pri
	src/shared/qbs

Change-Id: I5050baa31f4a892d00cd6f7e088d1b597921474d
2016-12-05 10:55:35 +01:00
Christian Stenger
983936f975 Dumper: Fix QObject detection when using procedure linkage tables
Change-Id: I3ac9889b822cb30d2ccdb6a7e2452e753cc3f2df
Reviewed-by: hjk <hjk@qt.io>
2016-12-02 14:44:08 +00:00
hjk
dc2724a3f7 Debugger: Allow QObject property extraction without debug info
Task-number: QTCREATORBUG-16908
Change-Id: I1e1e9d91a6317808610f39868383b67e5c80a9a4
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-12-02 13:26:00 +00:00
hjk
2275d68373 Debugger: Switch on QObject name display by default
... and use the option to govern general QObject guts display.

This allows people to completely avoid the performance impact
of attempted QObject display and still makes the feature
more prominent for our favorite use case.

Change-Id: I1e53b6448f646ab7eea9168a3cd24c77769e6328
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-12-02 11:23:46 +00:00
hjk
2d5e6ef232 Debugger: Fix QObject parent pointer display
Change-Id: If8b6c7415d5cd6b8e5df6c2d760b015e3077c20f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-12-02 06:57:11 +00:00
hjk
aba0a6b9ce Debugger: Add dumper support for libc++'s std::weak_ptr
Change-Id: Ie9041f95159e85c81f108aeff1564be136e4b7ef
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-12-01 14:34:21 +00:00
hjk
a7fb4cd3ed Debugger: Make QStandardItem dumper work without debug info
Change-Id: Iccdc693616558d2d224c1145eee78f903792c4a6
Task-number: QTCREATORBUG-16908
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-12-01 14:30:37 +00:00
Christian Stenger
681efe2324 Dumper: Fix std::once_flag dumper when using libc++
Change-Id: I5f320153f6ace6aecfad12f6156bba700fe7ad85
Reviewed-by: hjk <hjk@qt.io>
2016-12-01 09:23:27 +00:00
hjk
c944d08702 Debugger: Make {boost,std}::shared_ptr display more compact
After debugging through a code base that makes extensive use
of shared pointers (LLDB...) I came to the conclusion that the
display of weak and strong counts is pretty much useless and
it would be better to avoid that level in the display.

Change-Id: Ie03b05fff4f7f5b7dced2e656b404e8e7938cc25
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-12-01 07:50:23 +00:00
hjk
53022f01fd Debugger: Add dumper for std::once_flag
Change-Id: I8b5166fc0e7d54676b84a1b0d45c6a2793c2a37c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-12-01 07:09:00 +00:00
Eike Ziller
e487b3bd55 Merge remote-tracking branch 'origin/4.2'
Change-Id: I575f1cf98f2a4740577cdd94da21687d3392cdb7
2016-11-30 15:09:11 +01:00
David Schulz
bae72fcc51 Debugger: Fix MSVC python dumper for std::vector
Change-Id: I843f6195a9d51066eae57b7d383a0450fe4c56a1
Reviewed-by: hjk <hjk@qt.io>
2016-11-30 13:41:12 +00:00
hjk
3193321532 Debugger: Add a dumper for std::weak_ptr
Change-Id: I253b6d8069ecf36618aa40038da6820f52eb38df
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-30 13:37:46 +00:00
hjk
328f0c32e6 Debugger: Always display bald pointers as dereferencable
The result might not make sense, but the user should
have the option to check for himself.

Change-Id: I1792452906a5a27fd57b8f531792e63ef63033c8
Reviewed-by: hjk <hjk@qt.io>
2016-11-29 14:29:42 +00:00
David Schulz
f63c947289 Debugger: Fix MSVC python dumper for std::list
Change-Id: I3c32ba62107d54e0ab588b7a6cd068575c4e2873
Reviewed-by: hjk <hjk@qt.io>
2016-11-29 10:54:00 +00:00
Orgad Shaneh
7b3642cce4 Merge remote-tracking branch 'origin/4.2'
Change-Id: I259a402bc896fc2e359cc96b7510453ac9a9a552
2016-11-28 15:27:51 +02:00
David Schulz
cc765e9fad Debugger: Raise exception for invalid memory
The api doesn't expect empty arrays and doesn't validate indices
before accessing them.

Change-Id: I6d6fde9eec6d65d5db351be821fed892a77fabc1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-25 12:04:52 +00:00
hjk
eefe4fb7f7 Debugger: Add a dumper test for shared_ptr<ThingWithVTable>
... and fix lldbbridge to pass it.

Change-Id: I2c20cfafe5d7695d4359521cbfcbdc235dacbc82
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-25 11:57:24 +00:00
hjk
b18ac1faec Debugger: Make QStandardItem test pass without debuginfo
Change-Id: I9afbe8c76b6ff0797859f72741941a9ed34e57a1
Reviewed-by: hjk <hjk@qt.io>
2016-11-24 16:24:30 +00:00
Christian Kandeler
00f9ee1a3e Debugger: Better fix to extract Qt namespace with GDB
Done-with: Christian Kandeler
Change-Id: Idf34bee297677e837085d55297a0d6e6341dd2c7
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2016-11-24 16:21:21 +00:00
hjk
a225158c24 Debugger: Simplify dumping of paired items
Change-Id: I191801489d88c6abd15c6f3cd1cc6df97c8668d6
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-24 15:12:14 +00:00
hjk
9d7a1fcb0f Debugger: Add a QStandardItem dumper
Change-Id: I503b17e1f36158a774dcf096b19ba628f0cc0205
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-24 09:51:40 +00:00
David Schulz
75303523ef Debugger: Fix std::deque python dumper for msvc
Change-Id: Iffbc3dffef6a3dc941fde024eac1e5e690ddb1c8
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-24 08:46:52 +00:00
David Schulz
1df8f19257 Debugger: Create reference types for arrays and pointers
Directly looking up array and pointer types is more
likely to fail than looking up the target type.

Change-Id: Icea8320e2eedd34f6d81692c5eacf50f644100bc
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-24 05:44:40 +00:00
hjk
e9f0f37070 Debugger: Robustify QRegExp dumper
The capturesTexts cache may or may not be warm, and
we may or may not be able to warm it. Make the dumper
work in as much cases as possible.

Change-Id: I9d9e0ec0c6a1bcf7288352c2834fedd42071d068
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-23 11:23:04 +00:00
David Schulz
c8bb93de6b Debugger: Do not print warning for auto padding
Change-Id: I5fc1cf185fdf9d3928a68e952aeb9fd39fe87c8a
Reviewed-by: hjk <hjk@qt.io>
2016-11-23 08:26:21 +00:00
hjk
286f089e55 Debugger: Fake contents of empty base classes with LLDB
A truly empty base wouldn't need content, but LLDB 3.8 reports declared
but not defined undistinguishable from empty bases. At least for the
common case of a single inheritance class we can continue dumping by
fake base class contents by fake the contents by using the whole derived
object's data.

Change-Id: I82d595b985ec1289d8abce5fccd217057d2d2d44
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-21 13:34:03 +00:00
David Schulz
b04602396b Debugger: Detect base classes in cdbbridge
Change-Id: I6a422bd70e6a28acd390ec9d01a14331b41168c0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-21 12:47:22 +00:00
Orgad Shaneh
6d1d1a4416 Merge remote-tracking branch 'origin/4.2'
Change-Id: I957c22020fbacb2f631220b0cdc7fa16a782798b
2016-11-21 10:25:45 +02:00
hjk
fa5cd03c11 Debugger: Add libc++ std::{deque,stack} dumpers
Change-Id: Ibf95c76b89fb7673241e680c233c7514c667f261
Reviewed-by: hjk <hjk@qt.io>
2016-11-18 16:27:07 +00:00
hjk
96b907a1e8 Debugger: Fix QFiniteStack dumper and add missing auto test
Change-Id: If5f242f8d5184a0f2c62f6211f2ba89cda0cac07
Reviewed-by: hjk <hjk@qt.io>
2016-11-18 13:32:05 +00:00
hjk
5b43ff7ad9 Debugger: Make QV4 dumper test pass with Qt 5.8.0
The layout of a QV4Value has changed in Qt Declarative change 2afb54fb.

Change-Id: Iab618cc128be242c786b9a7460e80e8e49ee6544
Reviewed-by: hjk <hjk@qt.io>
2016-11-18 13:31:26 +00:00