Commit Graph

50 Commits

Author SHA1 Message Date
David Schulz
17485c0678 Debugger: Optimize python output handling
Change-Id: Ia97e8adaabbffe49acec44575621a4f4243c5cea
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-04-10 07:07:38 +00:00
David Schulz
c00bb1dcfb Debugger: Pass uninitialized variables to the python dumpers
Reduces accessing uninitialized memory

Change-Id: I025e9070b9b17a806237619b484cb27230e7f494
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-04-10 07:03:23 +00:00
David Schulz
cafd4a4626 Debugger: Make readRawMemory exception more detailed
Change-Id: Ibb9b42b05921cf8f797da3d3e2967a8842bf38c0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-04-04 08:22:18 +00:00
David Schulz
86edeb9722 Debugger: Use native value for pointer dereference
Change-Id: Ibde6ff382e7adc0c196837c9eba04391c0a2c3a0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-03-28 09:22:28 +00:00
David Schulz
767d988891 Debugger: Cache reference to an unresolvables type as struct
This fixes throwing an uncaught exception if local variables contain
arrays or pointer to a type that can not be looked up.

Change-Id: If9407e5cf5d86bb89594266d4122a53dd65a80bb
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-03-27 13:19:13 +00:00
David Schulz
c2f260ee2e Debugger: Add exceptions for array type names
Cdb also seems to return <gentype number> type names for
virtual function table types.

Change-Id: I0d9accb88222de599488fabdb69c7f1585216c8e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-03-22 14:03:55 +00:00
David Schulz
33e8f2e099 Debugger: Fix QObject detection on Windows
Change-Id: I054161dfde0c03167a6d57861b069c403330e746
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-03-21 09:04:34 +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
37dea3d7a6 Debugger: Fallback to read raw memory
...if native debugger value for an integral typed value can not be
interpreted as an integer.

Change-Id: Ic9753dd56f5d1854dc0765d5de2a0258a38615d8
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-03-03 07:56:47 +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
David Schulz
edacb7d383 Debugger: Use symbol tag to determine type code
Change-Id: I49a2a0f3e1ff65accb0d2e04fbd9352ce3f63f2c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-03-01 10:07:43 +00:00
David Schulz
327341b917 Debugger: Check type cache before creating array/pointer type
Change-Id: I334c8d9a7ae365f28a8b070b0ccef943b5db3c59
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-03-01 10:07:36 +00:00
David Schulz
9c2e45aa3c Debugger: Use listTemplateParameters from DumperBase
This will utilize the lazy lookup of template parameter types.

Change-Id: Id91ccaba7911e8769f42ec0c65a60f93558be1a2
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-02-23 08:40:26 +00:00
David Schulz
bb76740691 Debugger: Use GetOffsetByName for staticMetaObject lookup
Halves the lookup time compared to parse and evaluate.

Change-Id: I8beda23f444c73816a93e38154d2ca502b701fe8
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-02-02 13:06:52 +00:00
David Schulz
1b5d8a84f8 Debugger: Let the python bridge handle reference types
Create pointer and array types in the python code. Uses
the type cache which leads to less type lookup calls.

Change-Id: I970bbb04da2e8051ed66b4b12dfb62076d7f214d
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-02-02 13:06:44 +00:00
David Schulz
fcdcc4c7f8 Debugger: Add Core::Id python dumper for cdb
Change-Id: Id89f730e90586659ce76e685c014655178957222
Reviewed-by: hjk <hjk@qt.io>
2017-02-01 12:22:08 +00:00
David Schulz
663631f35c Debugger: Replace common qint typedefs before type lookup
Change-Id: Ieba28bab3c603d06caf9abb287189bf87f6dabb0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-01-30 08:30:41 +00:00
David Schulz
313cc9bc85 Debugger: Detect QObject based on customEvent for cdb
Change-Id: Idce6d8e8bc4d913226709a30e3dffd901e9cc2b4
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-01-26 11:23:32 +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
David Schulz
58e7554f3d Debugger: Cache qtNamespace also if qstrdup wasn't resolved
Otherwise it will be looked up for every value in a none Qt build.

Change-Id: Id5d82333b6fb93242d06c5d7e9fdf8ffa2ce6b38
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-01-19 10:03:34 +00:00
David Schulz
046e6309d3 Debugger: Add support for none standard Qt builds
... to the python based cdb dumper.
Now supporting static, namespace and qt builds with a libinfix.

Change-Id: Ib6bcd00dba876adc7a56c23ec4f4280cd3208143
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-01-17 11:59:36 +00:00
David Schulz
cb2021d630 Debugger: Call qVersion() for pre qtHookData Qt versions
Change-Id: Id37f4c31b776ea5af960011e7485b11c1a51c8d3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-01-17 11:59:27 +00:00
David Schulz
9ef6cb1a34 Debugger: Generate cdb comprehensible qtDeclarativeHookData symbol name
Change-Id: Ibbdd6204b3a8806057fc16de18462c96840e340c
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-01-12 09:07:11 +00:00
David Schulz
0279e1c3a6 Debugger: Add guard to fromNativeValue
Change-Id: I733ad57e562034d7056aa13402cd000a7a1ae8b9
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-01-12 09:06:56 +00:00
David Schulz
ccd84c62be Debugger: Add basic benchmarking infrastructure
Change-Id: Ib685be2ec7c39527748c2feb2ec7cc1dcd01ac37
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-01-05 11:41:26 +00:00
David Schulz
2e90a02a52 Debugger: simplify locals loop
The value name is already set in fromNativeValue

Change-Id: I82cdaa33133cde431d23a0f20bd5c3d6d938cf7f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-01-05 11:41:23 +00:00
David Schulz
c9003ef265 Debugger: Cache pointer size in cdbbridge
Change-Id: Idf404a10f2a9cc3eff033123829ac5b564d7e172
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-01-04 11:58:55 +00:00
David Schulz
274ed92372 Debugger: Use qtHookData to get qtversion in cdbbridge
Change-Id: I243b6f69e52286c1c64f0c02350d3e4d4cfd6c69
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-01-04 09:06:22 +00:00
David Schulz
4571e0caec Debugger: Generate qtHookData symbol name based on module
Change-Id: I322cac9376b1789d87d3c704b4f1f89a0a892dbc
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-01-04 09:06:16 +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
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
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
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
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
David Schulz
eabccbdcb2 Debugger: Don't encapsulate integer in values for template args
Change-Id: Ib1bb2b01ff8eb1ed11c0f5785f3b4bb5f50c411a
Reviewed-by: hjk <hjk@qt.io>
2016-11-18 06:16:04 +00:00
David Schulz
8736565c14 Debugger: Adjust to latest field changes
Change-Id: Ic4b3c8f0670a0d58e3d762ff0765862709901d2a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-07 09:57:05 +00:00
David Schulz
bf133156ee Debugger: Replace the native void type with a fake void type
The native void type returns errors when accessing for example size
or name.

Change-Id: Ia5826ff4894eb7205d37a15661b82d9410171413
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-07 09:57:00 +00:00
David Schulz
bf982fdfb9 Debugger: Set size of void to pointer size
The previously defined size of zero resulted in a number
of division by zero exceptions.

Change-Id: I3faed573bb15b9b9fd825281b8f9b0c15a02a7de
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-07 09:56:57 +00:00
David Schulz
4411f91139 Debugger: Set value name in cdbbridge
Change-Id: Ida4068d86b4a0785fcd848cdc4957dcf3a328135
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-07 08:42:02 +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
19af0d44cd Debugger: Fix static meta object lookup fo cdb
Change-Id: I47597a83137e07f61b2ae55ee6446ff345b861a5
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-02 09:54:35 +00:00
David Schulz
ca5344ce60 Debugger: Create a pointer value from data returned from evaluate
The evaluate function of the cdb python module returns an integer
representing the address of the evaluated expression. If the expression
does not evaluate to a pointer the python module currently returns a
NoneType.

Change-Id: Ifc77109ef2161a3895a7661789f05134a4b64168
Reviewed-by: David Schulz <david.schulz@qt.io>
2016-11-02 09:11:34 +00:00
David Schulz
89fea59099 Debugger: Adjust cdbbridge to latest type changes
Change-Id: Ifa5edb490f12c302940d4f2101f9c297558a7cce
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-01 14:04:11 +00:00
David Schulz
0a98e47e47 Debugger: Add a fake void native type to the cdbbridge
Looking up 'void' is known to cause hick ups.

Change-Id: I4c4b3bae5b5ac572404156edbd457003fbbf53f3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-01 14:04:02 +00:00
David Schulz
79c247eb09 Debugger: Remove unused code from the cdbbridge
Change-Id: I7199b04442d7edada2ad82707b46465d66c255a5
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-01 09:10:09 +00:00
David Schulz
b01119543f Debugger: Overwrite unsupported call functions in cdbbridge
Change-Id: I64f933d649432fb680fc7e2e0cdfa251e798a58c
Reviewed-by: hjk <hjk@qt.io>
2016-10-13 07:51:22 +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