Commit Graph

246 Commits

Author SHA1 Message Date
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
Christian Stenger
e0a6b45f22 Dumper: Fix padding handling (32bit)
This also reverts 3d68a8d0de.

Change-Id: I3e527096b4d36a102f010e538e428654cc3b783c
Reviewed-by: hjk <hjk@qt.io>
2016-10-13 13:26:31 +00:00
hjk
449a11775a Debugger: Strip references from type displays again
Change-Id: I4b4f48194fad8cd331e9f281b14044e5262b49be
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-10-12 07:50:01 +00:00
hjk
c938b8d4db Debugger: Always initialize currentNamespace guess
This shouldn't be necessary but the task indicates otherwise.

Task-number: QTCREATORBUG-16965
Change-Id: I6df28c96e0acb3cd3eea56a5a931b36fbd85dcea
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-10-12 07:35:06 +00:00
hjk
60e4cec473 Debugger: Make createType more flexible for namespaced Qt
Use '@' in type names as replacement for the namespace,
similarly to what the auto tests do.

Change-Id: Idc074f8d47a31cb942a35f3d4fe364d806f9610e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-10-10 13:53:55 +00:00
hjk
0722b82560 Debugger: Start standardization on single quotes for Python strings
Looks a bit cleaner.

Change-Id: I0bda173a4a8e12419d2b5914b83b54162a453927
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-10-10 09:58:21 +00:00
Christian Stenger
71a449a1e8 Dumper: Fix typo
Change-Id: I3f9e9b2b38d4a8af68a6d79bf3c63572ca160db8
Reviewed-by: hjk <hjk@qt.io>
2016-10-07 14:42:53 +00:00
hjk
6b2665a180 Debugger: Consolidate dumper state setting
Move all the currentFoo initialization to DumperBase

Change-Id: I0a59715fe1550f466e78cbf678622dd8dfe1783c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2016-10-07 13:04:30 +00:00
hjk
311adfeff7 Debugger: Remove output lock from cdb bridge
There's no threading involved on the cdb/python side.

Change-Id: Ibc1ad6fb5242a86450ca15f65cb57e4cae99d6ed
Reviewed-by: David Schulz <david.schulz@qt.io>
2016-10-07 10:21:56 +00:00
David Schulz
a83d539551 Cdb: Introduce interface for python dumpers
Change-Id: I0ef2fd8a44232d65b0d772fd6c65230266d586a8
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-10-07 06:40:20 +00:00
hjk
e234bbd88b Debugger: Add dumper for Nim's string and sequence types
... and make the auto test infrastructure able to handle
a test. To pass the test, some Nim compiler must be
accessible.

Change-Id: I707aa72c0f3a2ea35c7131cba490cafb41617f6c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-10-06 13:39:02 +00:00
hjk
21ba1f7b7a Debugger: Allow explicit padding in patterns
Change-Id: I6f2302649cdbcbb9052a6898841c21301dace9e6
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-10-06 13:11:20 +00:00
hjk
d4ef385d59 Debugger: Improve QJSValue dumper on 32 bit
Change-Id: I18937a92d5202a58d9f3d786c6cc37f8176b2692
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-10-06 09:18:10 +00:00
hjk
6913f90384 Debugger: Ditch Dumper.stripClassTag
It doesn't seem to be needed anymore, and if it were, it'd be the
task of the back-end specific fromNativeType() functions to sanitize
type names.

Change-Id: I7c6af40aeacb2dbaaf73143e9fdcc1d866bf3f3d
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-10-04 12:53:52 +00:00
hjk
a215bdace4 Debugger: Fix QObject property dumper for Qt 5.6.0/32 bit
Change-Id: Ie9d4fb069616464cff44909ed30d242741ef3180
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-10-04 12:53:43 +00:00
hjk
83b14ec359 Debugger: Fix std::map dumper for XCode 8
Change-Id: I7536d65355d69f4b8c31bc5adeb582d9b4eb1b33
Reviewed-by: hjk <hjk@qt.io>
2016-09-30 16:01:41 +00:00
hjk
da00b0202e Debugger: Use types instead of type names in dumper array handling
Change-Id: I5c4b6e0e0de077fbead467dd1b042c379c9a0dd3
Reviewed-by: hjk <hjk@qt.io>
2016-09-30 15:06:37 +00:00
hjk
9136380753 Debugger: Adjust QObject dynamic property dumper
The change from QList to QVector (d82e1d145) is in 5.6

Change-Id: I7da6442247f97bb27d4359ae2f1f759c65c2c9f2
Reviewed-by: hjk <hjk@qt.io>
2016-09-30 13:56:42 +00:00
Orgad Shaneh
643047c296 Debugger: Support int operator for Value
Enables compatibility with <4.2 dumpers.

Change-Id: Id904a8895f130ead9cd3c46452639f100451b164
Reviewed-by: hjk <hjk@qt.io>
2016-09-29 16:24:39 +00:00
hjk
412d7b2255 Debugger: Consolidate special type lookups in *bridge.py
Change-Id: If5f255a32f1cfde925345f4a33e6fa4de01d10d2
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-09-28 11:37:30 +00:00
hjk
c5ee2737b1 Debugger: Unify *Dumper.childRange()
Change-Id: I58cc225efeeabe6b97cb0228b89fb4ac127ce6c9
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-09-28 10:40:37 +00:00
hjk
27f473ab00 Debugger: Unify the dumper reload code
Instead, push backend differences into a more generic reportResult()
function.

Change-Id: I6bc34580e915b830e592680022b3499ae5eb1e57
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-09-28 10:40:27 +00:00
hjk
b0d6e0b374 Debugger: More V4 related dumper
Change-Id: Ifd2c5748996ce71bf4b8844ff270c41ba4a9c41f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-09-28 10:08:43 +00:00
hjk
cbcc556614 Debugger: Make the 'use last value for short display' trick permanent
Change-Id: I4c8b50751ed4ad605bbd02287147a904d8aec58b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-09-28 08:48:43 +00:00
hjk
a2c83874d3 Debugger: Some dumper improvements for QV4 types
Start displaying QV4::Value again for numeric values
and QJSValue for ints, doubles and strings.

Change-Id: I18ce226c21168087ce280cb05aa0e250bd3187d9
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2016-09-27 15:20:25 +00:00
hjk
5efa84830b Debugger: Remove use of native values in dumper.py
Lowers the barrier for other debugger backends.

Change-Id: I09e0ad09548b6b4220175245cc0d845ac5aa29d0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2016-09-26 14:07:00 +00:00
hjk
c7305abf26 Debugger: Simplify qtHookData access in dumper
Change-Id: I14b7ecb5fbe1e6b2a2c587aa7dcb5ef18e3cb9f3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-09-26 09:14:06 +00:00
hjk
cc8414ff1f Debugger: Add a few dumpers for OpenCV related structures
Mainly as test ground to show of matrix display later.

Change-Id: I49e6d06bf7203532e384cc3215483512089bfcf5
Reviewed-by: hjk <hjk@qt.io>
2016-09-23 10:20:42 +00:00