Commit Graph

888 Commits

Author SHA1 Message Date
hjk
af54ab960a Debugger: Add a dumper for QSqlField
Task-number: QTCREATORBUG-3905
Change-Id: I9290a9e46d7fa77417d58a3f81d4e4d680c751b6
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-02-08 15:22:10 +00:00
David Schulz
a9f446704f Debugger: Adjust python dumper for 32bit MSVC binaries
Change-Id: Ia20321da89b387d016eb7fed076002a709aae748
Reviewed-by: hjk <hjk@qt.io>
2017-02-07 09:18:23 +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
hjk
19e6ee7862 Debugger: Adapt QHostAddress dumper after Qt Core change a6cdfacf
Change-Id: I750d37f7ab23a638c2e0c5f0fd808ba22a0b49d0
Reviewed-by: David Schulz <david.schulz@qt.io>
2017-02-01 12:12:38 +00:00
David Schulz
228e53aab1 Debugger: Add dumper for unordered_multi(set/map)
Change-Id: Ie1badb0cab0331c35e3094ab121a1a1170cc2bcf
Reviewed-by: hjk <hjk@qt.io>
2017-02-01 10:19:03 +00:00
David Schulz
a9a1f80f3a Debugger: Skip QLocale dumper for cdb
This dumper relies heavily on calling functions which isn't
supported by the cdb interface.

Change-Id: Iff839a619736755024dd3f406414d352ee543012
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-02-01 07:06:36 +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
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
4eb3b3348a Debugger: Unify std::once dumper output
Change-Id: I4bbb14036ce89d8e06b184f33fd2ecfd098f2443
Reviewed-by: hjk <hjk@qt.io>
2017-01-27 12:42:56 +00:00
David Schulz
fba8bc25d0 Debugger: Use direct memory access for boost::list items
Change-Id: I1f62581ee752cd4df2e5d1f3e124bf75cbd6a4b6
Reviewed-by: hjk <hjk@qt.io>
2017-01-27 12:32:22 +00:00
David Schulz
52705ad214 Debugger: Default to newer version of boost::unordered::set dumper
Change-Id: I92c14db0b10da8598c80f85525dc641c86689a90
Reviewed-by: hjk <hjk@qt.io>
2017-01-27 12:32:12 +00:00
David Schulz
367bba1897 Debugger: Fix std tree iterator for pairs
Change-Id: Iad39c0c16f642e9126a79d5bdc727620aaaaed2a
Reviewed-by: hjk <hjk@qt.io>
2017-01-27 12:32:03 +00:00
David Schulz
cd70da5dcd Debugger: Put number of children for QHostAddress
Change-Id: I81bbfb89bccdf56e9a190d95f8fb1557869d7c50
Reviewed-by: hjk <hjk@qt.io>
2017-01-26 14:04:53 +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
Alexandru Croitor
079a5c3cc3 Debugger: Fix type lookup for lldb
In certain cases FindFirstType can fail to find a type due to bugs
in lldb. The workaround consists in using FindTypes, and iterating
over the results to find the searched for type.

Change-Id: I1fee3f774d0cf02842f6b55419142af5e9780992
Reviewed-by: hjk <hjk@qt.io>
2017-01-12 12:48:54 +00:00
Alexandru Croitor
2085dd9e96 Debugger: Fix QFlags dumper to work with lldb
Lldb fails to find types if they are prefixed with enum.
Therefore don't prepend enum when looking up the type
for QFlags.

Change-Id: If2109f68677c1b9ec48a05d61cad2d6590f375dc
Reviewed-by: hjk <hjk@qt.io>
2017-01-12 12:43:33 +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
ff9366dc51 Debugger: Disable logging debug message by default
Change-Id: Ifb3fd8a6ac17b09ab760da46f555f3345206285a
Reviewed-by: hjk <hjk@qt.io>
2017-01-12 09:07:04 +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
09441deb0e Debugger: Do not evaluate functions for msvc targets
Change-Id: I8c346d2353921ec128f9857ce3fda3d8410c73c5
Reviewed-by: hjk <hjk@qt.io>
2016-12-22 06:10:25 +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
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