Commit Graph

273 Commits

Author SHA1 Message Date
hjk
61501042bc Debugger: Simplify Qt namespace guessing code
We get proper notification when QtCore is loaded now, and we either
got it, or not.

Change-Id: I9485126d9b15b8d859ba440f3ba1623f03527ef8
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-03-15 11:36:18 +00:00
hjk
fb213b5826 Debugger: Use a named tuple for Dumper.Field
Makes it clear that this is meant to be immutable and is supposedly
faster.

Task-number: QTCREATORBUG-17823
Change-Id: Ie5d67b793e0bc4f704981d5161efc12bcc22100a
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-03-09 08:20:46 +00:00
David Schulz
4f91cb3d0c Debugger: Do not lookup types when accessing the type name
Return the typeId instead of triggering a type lookup when accessing the
type name and no TypeData is available.

Change-Id: I4d46d5356d38184d73427e5a65c3986d30520cf9
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2017-03-08 09:52:30 +00:00
David Schulz
530f7972eb Debugger: Optimize QObject::staticMetaObject lookup
Change-Id: I8c06472ce4e33b7c4203934d93b9cc8c8ae95ce2
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-03-07 09:46:23 +00:00
David Schulz
51d14393c4 Debugger: Fix double and (unsigned) long long alignment
Change-Id: Ia1ee70a047b3e659730e5a19b874f1f2e567d8ed
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-03-03 12:57:28 +00:00
David Schulz
aafb17ae83 Debugger: Add enum value dumper to cdbbridge
Change-Id: I40f1556599be7581eeab0c75b034696ac22a7131
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-03-01 10:07:49 +00:00
Eike Ziller
e724934393 Merge remote-tracking branch 'origin/4.2'
Conflicts:
	doc/src/qtquick/creator-tutorial-create-qq-project.qdocinc
	doc/src/qtquick/qtquick-creating.qdoc
	doc/src/qtquick/qtquick-uiforms-tutorial.qdoc
	share/qtcreator/welcomescreen/qtcreator_tutorials.xml
	src/plugins/git/gitgrep.cpp
	src/shared/qbs

Change-Id: I6f4d168d888d9547c3af0819f79cc9ebb4186ca0
2017-02-14 15:32:04 +01:00
Orgad Shaneh
2b50fec73b Debugger: Fix int casting for bitfields
Change-Id: Iea3647594ffa3b2024ae469d844fa73028a0ab62
Reviewed-by: hjk <hjk@qt.io>
2017-02-08 16:54:45 +00:00
hjk
92263a0535 Debugger: Do not try to access type information without loaded binary
Amends b5b233d69e.

Change-Id: I24857b1ddfd3e5e1d234aac4e9871df4faf1c8fc
Reviewed-by: David Schulz <david.schulz@qt.io>
2017-01-31 14:09:36 +00:00
David Schulz
b5b233d69e Debugger: Hardcode QChar type
QChar lookup doesn't always return the expected type. Get ahead of
this by hardcoding the type data on initialization.

Change-Id: Ie25c27521afeddc3da917242ce64df3901bcc80b
Reviewed-by: hjk <hjk@qt.io>
2017-01-31 10:00:13 +00:00
David Schulz
10df40ca5e Debugger: Extract virtual function table dumper
Change-Id: I729186d36200967d6ca229e639ceb864f69240f7
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-01-26 11:22:34 +00:00
Eike Ziller
589fedf455 Merge remote-tracking branch 'origin/4.2'
Conflicts:
	qbs/modules/qtc/qtc.qbs
	qtcreator.pri
	src/plugins/projectexplorer/kitinformation.cpp

Change-Id: I94299b069418586db97d1d596a252794e4037556
2016-12-20 17:14:19 +01: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
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
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
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
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
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
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
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
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
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
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
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
hjk
3c3bccf0fb Debugger: Also support boost 1.55 unordered_maps
Change-Id: Id9ac4ecc8c61d4224f5840df2ec0a75c3c305825
Reviewed-by: hjk <hjk@qt.io>
2016-11-18 12:11:56 +00:00
David Schulz
f8c86fd95f Debugger: Detect msvc virtual function pointer table
Change-Id: I51d82b692638932e35f22a5bb9286eecad577ed7
Reviewed-by: hjk <hjk@qt.io>
2016-11-18 11:41:36 +00:00
hjk
c9067ff28c Debugger: Fix boost::unordered_set dumper for older boost versions
Somewhere between 1.48 and 1.58 structure layout changed.

Change-Id: Id8bcb473f364537342261dd2596f9f1bdacb5c79
Reviewed-by: hjk <hjk@qt.io>
2016-11-18 08:21:05 +00:00
hjk
f42d44a481 Debugger: Recognize '-' as start of numeric template argument
Change-Id: Ibc0fd730655378dca3dc231dbad36981364ccf70
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-16 09:38:59 +00:00
hjk
e4e1bdb27a Debugger: Robustify typedef member lookup
Some code path did not resolve typedefs when looking up
struct members by name, making e.g. the BoostList dumper
fail for LLDB.

Change-Id: I7adf235cff3941574cab9f03d6f15ec5f3e2f0bd
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-14 12:37:31 +00:00
hjk
8fce605913 Debugger: Display {un}signed char* similar char*
Task-number: QTCREATORBUG-17236
Change-Id: Ibbc58807572c6d1785f20948992f7a2c0dcc87f8
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-11 09:07:41 +00:00
hjk
ae4d3c52e6 Debugger: Sanitize report of timings
Use Python's list and dict output directly, instead of
a manually stringified version thereof. Also, report
milliseconds instead of microseconds.

Change-Id: Ibcbdea732e7ecc58fd672bc5da794832215865b4
Reviewed-by: hjk <hjk@qt.io>
2016-11-10 20:14:25 +00:00
hjk
67505423e6 Debugger: Dumper code cosmetics
Mostly left-overs from earlier reorganization.

Change-Id: I94f44efa1aab1e17de3c0fec6c230722149a1404
Reviewed-by: hjk <hjk@qt.io>
2016-11-10 19:29:02 +00:00
hjk
9040c4081e Debugger: Use less GDB inferior calls in normal field extraction
They are not usable in core files.

Change-Id: I2134b61f27c27862c12a679d0acf7bebc9fcc7a2
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: hjk <hjk@qt.io>
2016-11-10 16:20:37 +00:00
hjk
77bd581f49 Debugger: Re-enable access to dumper.Value by integral index
Task-number: QTCREATORBUG-17220
Change-Id: I63632a90e2518151b3bf20b1241c24f9808ec39c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-10 07:02:58 +00:00
hjk
537c8721b7 Debugger: Also display symbolic names for pointers
GDB-only for now.

Task-number: QTCREATORBUG-7550
Change-Id: I5a1096028e7454937b727419ec73f5fd979f4e8b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-07 10:44:29 +00:00
hjk
6f1bd8bbdb Debugger: Consolidate name handling of anonymous structs
Change-Id: I44acfdccb5cad02c95270490e319caca334c8a4b
Reviewed-by: hjk <hjk@qt.io>
2016-11-04 21:21:26 +00:00
hjk
5276f35ae3 Debugger: Move base class numbering to generic code
Change-Id: I046a587f9fbf2a6345f3c0432a1b5937069a9304
Reviewed-by: hjk <hjk@qt.io>
2016-11-04 20:47:09 +00:00
hjk
7dbc62a182 Debugger: Robustify special argv detection
Check for Pointer(Pointer(Char)) instead of a 'char **' name
which fails to match 'char**'.

Change-Id: Ie3d523924e64156a32df6db5c87997bb88f125a1
Reviewed-by: hjk <hjk@qt.io>
2016-11-03 16:30:13 +00:00
hjk
3be260ecc5 Debugger: Replace 'first base' guessing logic
Use the fact that the order of the first three vtable entries of a
QObject is fixed and the size of their implementations is roughly
known.

Change-Id: I3d13f594cb1c1f162a520da18b2bc2aaba852092
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-02 15:11:32 +00:00
hjk
8bf8b5f61f Debugger: Make dumpers work for Qt 4 again
Change-Id: I78ac75161508eb6889d1a8a5d04df2860804b907
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-02 13:01:47 +00:00
hjk
b0da1e3ce4 Debugger: Fix display of vtable entries
Task-number: QTCREATORBUG-17050
Change-Id: I17fc245a8a766f3a450c0bea966aab69ca9eb5b9
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-02 12:24:50 +00:00
hjk
77db31db3b Debugger: Use native field accessors again
This is a partial revert of the type id change (bd2653fb) to get
the case of virtual bases work again, as it falls back to native
field accesses everywhere we have native types.

This is likely to be a performance regression with CDB/Python,
but since this combination is experimental and not used by
default in 4.2 getting GDB/LLDB right is more important.

Medium term we might want to have a more fine-grained approach
to use of type ids (e.g. use native field accesses on a case-by
-case base only for type with virtual inheritance)

Change-Id: I239111e6ce5f3365b750068bfc4dafb12be1d53c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-02 10:36:06 +00:00
David Schulz
0d2957c50a Debugger: Adding function returning the qtHookData symbol name
Change-Id: I2749b6823a8a9da4a343b0fdb112df893e935eb3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-02 09:56:10 +00:00
David Schulz
03cb7c720a Debugger: Add code for unresolvable types
Change-Id: Icb70e471a4a18b3f43442c1972c2661baadb23da
Reviewed-by: hjk <hjk@qt.io>
2016-11-02 09:12:59 +00:00
hjk
bd2653fbaa Debugger: Introduce and use type ids instead of type in dumpers
Change-Id: I569d13d4f5d66cf1606b2b5d047b415659de539b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-10-28 08:11:38 +00:00