Commit Graph

412 Commits

Author SHA1 Message Date
hjk
a8afa5c65c Debugger: Fix setting of Qt version fallback, again
Change-Id: I6b6cd448884800cb6d08dbdce15cb99f4ea8ba2b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-11-10 11:50:21 +00:00
Christian Stenger
4303e62c50 Dumper: Fix passing fallback Qt version
We nowadays have an additional token there.

Change-Id: I65e5a55792802ae2ab7da6f7c6d8d1b109bf55a0
Reviewed-by: hjk <hjk@qt.io>
2021-11-10 10:20:08 +00:00
Andre Hartmann
f9f26570c9 Debugger: Add even more std and Qt char and int types
Make more stdint, quint and char types known to the debugger.

Task-number: QTCREATORBUG-26501
Change-Id: I1e757af2a495142fa37fe2b7cefec56690adbf08
Reviewed-by: hjk <hjk@qt.io>
2021-11-09 13:30:37 +00:00
Andre Hartmann
78a1beb06e Debugger: Improve handling of stdint types
* Make (u)intX_t known as integral type
* Handle uint8_t[] the same way as char[] and unsigned char[]

Task-number: QTCREATORBUG-26501
Change-Id: I1eac21be198f8107f088e56daf435b5bb3217120
Reviewed-by: hjk <hjk@qt.io>
2021-10-29 13:12:02 +00:00
David Schulz
5a2b58550e Debugger: use Qt version from kit as fallback for dumper
Fixes: QTCREATORBUG-26456
Change-Id: If2cd664212b3fa07d7abaef7a1173f79716884bb
Reviewed-by: hjk <hjk@qt.io>
2021-10-25 12:06:18 +00:00
Christian Stenger
dde5a52693 Revert "Debugger: Drop support for backends relying on Python 2"
This reverts commit 43bcf91121.

GDB coming with MinGW shipped by Qt (e.g. 5.15  official) are still Python2 based.

Change-Id: Iad658de7a242345cc7f6081f26f0238071668a06
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2021-09-24 07:04:34 +00:00
hjk
43bcf91121 Debugger: Drop support for backends relying on Python 2
The last discussion of the topic was 18 months ago, and already back
then it seemed not widely used anymore. See
https://lists.qt-project.org/pipermail/qt-creator/2020-February/008382.html

Change-Id: I48c879ce918b7351b1120bd70892deb0330637f5
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2021-09-09 12:35:22 +00:00
Alex Richardson
ebc229a25b Debugger: fix QString printing in LLDB with python3
Before this change I was seeing all strings as
`<failed to decode '...' as 'utf16'>` when using LLDB bundled with CLion.
This error is misleading since the actual exception raised from the python
code was `'str' object has no attribute 'decode'`. To fix this, I updated
the hexdecode() method on Dumper to accept an optional encoding argument
and use that instead of the python2 str.decode().

Change-Id: Ic3afc786c42fd7384d9dc3117f0871837076c2ba
Reviewed-by: hjk <hjk@qt.io>
2021-08-16 09:34:28 +00:00
David Schulz
4f9ed8d620 Dumper: Fix qobject name dumping for Qt 5 again
Amends: e05fe66f4b

Change-Id: I244017a63216a6bbc89d9f211eec7d7def27beb4
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-04-14 09:28:45 +00:00
David Schulz
35b190834c Debugger: fix stringdata offset in metadata
Change-Id: I94899346c8193218133f80aa2716a6e5d44093e2
Reviewed-by: hjk <hjk@qt.io>
2021-03-24 09:55:52 +00:00
David Schulz
e05fe66f4b Debugger: Fix qobject name dumping for Qt 6
Change-Id: I146aa3d0b9d0f66a56a5fb1595f64297e15ebab8
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2021-03-24 08:29:30 +00:00
David Schulz
30ec121654 Debugger: Fix QObject dynamic property dumper
Change-Id: I120161f65a180f6facec0a5def2414ff128b31f9
Reviewed-by: hjk <hjk@qt.io>
2021-03-23 06:20:57 +00:00
Michael Weghorn
f4dc3fd5c5 Debugger: Prepend '*'s for autodereferenced pointers
If automatic dereferencing of pointers is enabled, the
"Value" and "Type" columns for pointers hold the values for
the dereferenced pointers.

In order to have a consistent behavior for the "Name" column
as well, prepend '*'s to indicate that the variable/expression
has actually been dereferenced.
Add parantheses around the original expression if it doesn't
match a simple regex for variable names, to avoid that the
leading '*' changes the meaning of the expression
(so e.g. a dereferenced 'somepointer + 1' is displayed
as  '*(somepointer + 1)' rather than '*somepointer + 1').

This introduces a new 'autoderefcount' field to propagate the
information how many levels of dereferencing have taken
place from the Python to the C++ side, which is then
used to add the leading '*'s for the display name.

Fixes: QTCREATORBUG-20907
Change-Id: Ia9a41cb42e25ba72a6d980a765dbe2b454deb8c8
Reviewed-by: hjk <hjk@qt.io>
2021-02-22 09:36:45 +00:00
hjk
977b999248 Debugger: Initialize DumperBase.output
This was used uninitialized in some put call from lldbridge's
disassembler.

Change-Id: I5a3ecf075dfd4a6c4e8a483f9f8172e295329ad0
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-02-02 14:07:01 +00:00
Mattias Johansson
2081038953 Add gdb tracepoint support for Linux
Change-Id: Id2e46bae576a730f8c1b64a247aeed12e6d721af
Reviewed-by: hjk <hjk@qt.io>
2021-02-02 07:36:07 +00:00
hjk
c2e3e0419d Debugger: Prepare delayed type creation for DumperBase.Values
Change-Id: I283bcdec178e0a860bef71753cd29cc283a58391
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-01-21 11:21:01 +00:00
Eike Ziller
45c2634166 Merge remote-tracking branch 'origin/4.14'
Change-Id: I62523c4733e617c46131048f5f62a2ca9be47d80
2021-01-06 08:42:15 +01:00
hjk
052b0b4c92 Debugger: Re-organize std::vector and std::deque dumpers
There are indications that the std::__1:: namespace cannot be relied
upon anymore.

Task-number: QTCREATORBUG-25061
Change-Id: I54d8d2fc757b1cfc9b27f00660f2814d745f2bc6
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-01-04 10:06:55 +00:00
Eike Ziller
4bc2b4741d Merge remote-tracking branch 'origin/4.14'
Change-Id: I842a7c7358fd0ff6d85c151806e440043914e09a
2020-12-14 14:19:15 +01:00
David Schulz
1981d90f39 Dumper: fix QMetaObject detection for Qt6 on windows
introduced by 9b8493314dd77f3e96b353187816bb7ef4dedbb5 from qtbase

This change does not address all usages of super data in the dumper, but
enables dumping children.

Task-number: QTCREATORBUG-24098
Change-Id: I813dacfa719dd6ca367e305fadcc8f2b8ee45425
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-12-11 14:01:20 +00:00
hjk
b3ad621e0a Debugger: Fix Bitfield dumper for LLDB with Python 3
Strangely enough, this issue did not trigger with GDB for either
Python 3 or 2.

Change-Id: I0e5cf7ce0a8605f105bff549634aa014ef1f8403
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-12-11 09:45:42 +00:00
Eike Ziller
1283b15117 Merge remote-tracking branch 'origin/4.14'
Conflicts:
	doc/qtdesignstudio/examples/loginui1/qtquickcontrols2.conf
	doc/qtdesignstudio/examples/loginui2/qtquickcontrols2.conf
	doc/qtdesignstudio/examples/loginui3/qtquickcontrols2.conf
	doc/qtdesignstudio/examples/loginui4/qtquickcontrols2.conf
	share/qtcreator/debugger/dumper.py
	share/qtcreator/debugger/qttypes.py

Change-Id: Id44a67cdeeb0889ff96eddcdf409d20ca7cbdd0b
2020-12-10 13:02:02 +01:00
hjk
8d6ca33a7a Debugger: Remove more dead code in dumpers
Change-Id: If0a48377470b75a2d9c5d7f3cb47a492b9214791
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-12-10 10:55:20 +00:00
hjk
e7e0fa5745 Debugger: Remove create{Container,List,Vector}Item
Not used anymore.

Change-Id: I1d534a094717cfc44aea73e6b4ca948c088480ae
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-12-10 10:55:11 +00:00
hjk
9c8c5b6363 Debugger: Strip inner typenames in pointer type lookup fallbacks
To compensate for a potential 'Foo*' vs 'Foo *' difference in
debug info.

Change-Id: I90e822f89bc13bdf7ffed30ee12a984a659aa38f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-12-10 10:22:47 +00:00
Christian Stenger
9c8768e752 Dumper: Remove some fallback code
..and unused or unknown variables.

Change-Id: I13d1d03fa09ef3952fe2cb3f4b257fb2882709f2
Reviewed-by: hjk <hjk@qt.io>
2020-12-10 10:21:34 +00:00
hjk
eac85f8261 Debugger: Fix QObject property display with Qt 6
Task-number: QTCREATORBUG-24098
Change-Id: I6e1013fe39208ef6e9ba792e6b2fb745eb5e3108
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-12-10 09:59:58 +00:00
hjk
c902974423 Debugger: Simplify QObject parent dumping
Change-Id: I24fd6bf684a213c2e47978485442dd6c47073a7a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-12-10 09:54:08 +00:00
hjk
276c0ae482 Debugger: Adapt QStandardItemDumper to Qt6
Task-number: QTCREATORBUG-24098
Change-Id: I1c21e6a1ee3db3532029638eedfcf58eead53424
Reviewed-by: David Schulz <david.schulz@qt.io>
2020-12-10 08:52:49 +00:00
hjk
ddb2ae657d Debugger: Improve QMeta* dumper for default-initialized objects
Null-dptr strikes again.

Task-number: QTCREATORBUG-24098
Change-Id: I4e24cbe4cad4995ce39116a1b51b26153004ccfc
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-12-09 13:42:08 +00:00
hjk
fff1fafec7 Debugger: Consolidate list data extraction in dumper
Change-Id: I5b860da4b1d15ffab8c60418321e40943dbbe07a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-12-08 14:19:40 +00:00
hjk
73f2ea11dd Debugger: Make GDB dumper tests pass with Qt release builds
Change-Id: I45ae41486b8081bb803290895e942a71d41d5c0d
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-12-08 12:59:24 +00:00
David Schulz
6187998090 Debugger: re-add old qobject children dumper for qtversion < 6
Change-Id: Icbafb7c22d18247f89a8aa6a5029c9914d251c2e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2020-12-08 12:36:30 +00:00
hjk
786e4c6f8f Debugger: Re-enable shortcut to get known type sizes in dumpers
Looks like we need to continue with this crutch for MinGW.

This partiall reverts commit 1074c2ffce.

Change-Id: I89d32f31281c3ef720bbc2a21d5a99bfd0066ba3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
(cherry picked from commit ffe3c56670)
2020-12-08 10:03:54 +00:00
hjk
ffe3c56670 Debugger: Re-enable shortcut to get known type sizes in dumpers
Looks like we need to continue with this crutch for MinGW.

This partiall reverts commit 1074c2ffce.

Change-Id: I89d32f31281c3ef720bbc2a21d5a99bfd0066ba3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-12-08 09:38:09 +00:00
hjk
8e0cb785dc Debugger: Drop alloc return value from dumper vectorData() helper
Only used for checks, do that within the function.

Change-Id: I4cc302864a9d3f8edac6f6364dfdac33b548e60a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-12-07 15:47:20 +00:00
hjk
493f44ac6a Debugger: Fix QObject children display for Qt6
Task-number: QTCREATORBUG-24098
Change-Id: If7b1e498bcbd191faecbcab9462f1d72331211f3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-12-07 13:52:57 +00:00
hjk
5ca4427bb7 Debugger: Create list of arguments for manually created template types
This is one of the roadblocks for the current failing Qt 6 QVariant
dumper for self-registered types.

Change-Id: I304ce8e8aa3dfc5b3694b65198fbac4f42de6d4b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-12-04 11:41:35 +00:00
hjk
54f281944d Debugger: Use @ as Qt namespace placeholder more widely
Change-Id: I73a7abaed17c1a8a1461a66e66860cba64d4f9d9
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-12-04 11:17:20 +00:00
hjk
f946e5b356 Debugger: Consolidate some string data extraction helper functions
Change-Id: Icfa395de5237e0f58e63b3ca0d88ff8c9a1998a9
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-12-03 10:55:06 +00:00
hjk
08a1117c26 Debugger: Extend and fix QPolygon dumper and test for Qt6
Task-number: QTCREATORBUG-24098
Change-Id: Ia2e43d15263e18698d9db6b4d23fa553c7b7ae5b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-12-02 15:22:35 +00:00
hjk
e1790ed9d0 Debugger: Fix some dumpers with namespaced Qt
This makes the use of '@' prefixes in split('{@QString}'...) etc
mandatory, thereby removing the guessing on whether namespaces apply
or not on the dumper 'core' side, and removes the guessing on
whether dropping the '@' 'works' on the individual dumper implementation
side.

Amends 1074c2ffce.

Change-Id: I44611eb09557638dec12d2e2f78cdaeac0bbd449
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-12-01 14:59:06 +00:00
hjk
398a74b027 Debugger: Adapt QObject name dumper to Qt 6
Task-number: QTCREATORBUG-24098
Change-Id: Iee8a71eda4c15b3cd36e569805fef769f6eb090f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-11-30 14:30:13 +00:00
hjk
e65b9cde28 Debugger: Partially adapt QObject dumper to Qt 6
This makes meta method and property names visible again.

Task-number: QTCREATORBUG-24098
Change-Id: I2e0522396a5e91be43ae6b850217b9153b29a962
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-11-30 12:02:29 +00:00
hjk
2bb32ed7a3 Debugger: Use Values instead of addresses in vectorDataHelper
Also rename it to vectorData, in line with byteArrayData and stringData

Change-Id: I91a4ddba272fcada3e451680ba5a5a756f7a976e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-11-27 13:58:30 +00:00
hjk
80fdbfff05 Debugger: Use qArrayData instead of qArrayDataHelper
Change-Id: I97a6c428e6b09232c420e2b8cb3b5b31588c949f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-11-27 13:58:04 +00:00
hjk
79df1c0804 Debugger: Use Values instead of addresses in putStringValue
Change-Id: I31a3c1a326d777d9e7081552d5a956e8e2882dcf
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-11-25 11:41:24 +00:00
hjk
1074c2ffce Debugger: Remove shortcut to get known type sizes in dumpers
This was incomplete, can conceptionally not be complete, and most
of the sizes were wrong for Qt 6.

Change-Id: Id107b30dd6707b280c18a5d2065a4ec9c39fb035
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-11-25 11:36:46 +00:00
hjk
961c660ebd Debugger: Use Values instead of addresses in encodeByteArrayHelper
Change-Id: I4ee44f14b5b0d6afddb305a923d25a737f0d3d97
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-11-25 11:36:26 +00:00
hjk
147ca66932 Debugger: Rename byteArrayDataHelper to qArrayDataHelper in dumpers
It's generic, and operating on QArrayData (-subclasses).

Change-Id: Ieedc0f1e3f573aeeb422eb9516d4634e6e0da4b9
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-11-25 11:35:16 +00:00