Commit Graph

1467 Commits

Author SHA1 Message Date
Eike Ziller
c53ccceff1 Merge remote-tracking branch 'origin/4.9'
Conflicts:
	qbs/modules/qtc/qtc.qbs
	qtcreator.pri
	src/plugins/debugger/debuggerkitinformation.cpp
	src/plugins/languageclient/languageclientmanager.cpp
	src/plugins/plugins.pro
	src/plugins/projectexplorer/kit.cpp
	src/plugins/projectexplorer/kitmanager.cpp

Change-Id: I66fb941202991f35f7d7761430b21e42dfc678a8
2019-03-14 15:51:15 +01:00
illiteratecoder
7236e340a9 Debugger: Fix std::{unordered_,}{map,set} dumper for libc++
Task-number: QTCREATORBUG-18536
Change-Id: I2842a525e99e4fcd9544a1f15bd42fd5c8c0c16e
(cherry picked from commit 7b39db9e8a)
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-03-06 14:15:14 +00:00
illiteratecoder
7b39db9e8a Debugger: Fix std::{unordered_,}{map,set} dumper for libc++
Task-number: QTCREATORBUG-18536
Change-Id: I2842a525e99e4fcd9544a1f15bd42fd5c8c0c16e
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Jeremy Barenholtz <jeremy@illiteratecoder.com>
2019-03-06 09:58:19 +00:00
Christian Stenger
31e549a7dc Debugger: Improve lldb breakpoint handling
Inform QC about changed breakpoints on the LLDB side.

Fixes: QTCREATORBUG-21997
Change-Id: Icec25725f92d8a0b47f7dab2971c0c5eb5b23757
Reviewed-by: hjk <hjk@qt.io>
2019-03-06 05:43:12 +00:00
Orgad Shaneh
cbfc6e522d Merge remote-tracking branch 'origin/4.9'
Change-Id: I801042a53ae4d02d1891ea582ca9ea89b00d3181
2019-03-01 13:06:57 +02:00
hjk
2cfa3502c3 Debugger: Remove identical CDB implementation of loadDumpers
Change-Id: I83582821f0670f65c8f325c54707947741a3df17
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-02-26 13:54:53 +00:00
hjk
41da97fb2c Debugger: Do not make std::string layout assumptions
... when non-std allocator is used.

Task-number: QTCREATORBUG-22040
Change-Id: I67785095f50058851c358a45ef19e0c41743fe4f
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-02-26 07:36:13 +00:00
hjk
4652a2b1d8 Debugger: Add a simple dumper for QMargin
Change-Id: I42703846196862793bc51602da376e5e0408bbd0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-02-20 12:03:23 +00:00
Christian Stenger
064f43fecf Dumper: Add dumper test for QSizePolicy
Beside this fix handling of QSizePolicy for
namespaced Qt.

Change-Id: Icf4e3574f97653a7bd4d8b696c87c17ef4defefa
Reviewed-by: hjk <hjk@qt.io>
2019-02-20 05:53:36 +00:00
hjk
bfee82fa2c Debugger: Add dumper for QSizePolicy
Change-Id: Ib4d2597229f2808fcf79e76a9590b0e07989bfb9
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-02-19 12:57:26 +00:00
Eike Ziller
868160f215 Merge remote-tracking branch 'origin/4.8'
Change-Id: Ia8fed69168d87afafdb5acf4de4d5d30f9b4ebf5
2019-01-31 08:38:13 +01:00
David Schulz
11863cb517 Debugger: add cdb specific symbolAddress
Fixes: QTCREATORBUG-21864
Change-Id: I54d89fabd83dd06e5d733519f0b65416077323c9
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-01-28 09:25:20 +00:00
hjk
ac1d6d0bc8 Debugger: Fix Attach to process and Run in Terminal
LLDB 6.x and 7.x

Change-Id: I127ed1e14ccdd239646673f2460be46da22d4965
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-01-23 14:24:57 +00:00
hjk
587bd782aa Debugger: Reduce the amount of ignored stop messages with LLDB
This is a workaround for excess messages from the early LLDB 3.x times.
LLDB 6.0 is ok with and without this workaround, LLDB 7.0 does not
produce the excess messages anymore and the workaround leads to
real stop messages e.g. after a breakpoint hit being ignores.

Change-Id: I2fad014eb92e066b00dbfe590fe62c543e5343f4
Task-number: QTCREATORBUG-21615
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-01-23 12:56:12 +00:00
hjk
d22a6d29e8 Debugger: Make *__int128_t also available with LLDB
Change-Id: I114458e18e461596966d5ef1b8f38f3c5d8d5ee5
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-01-21 11:43:56 +00:00
hjk
1327d9efc9 Debugger: Handle gdb builds without TYPE_CODE_RVALUE_REF again
Amends f75a7fa036: Not every gdb knows TYPE_CODE_RVALUE_REF, in that
case we ended up with no locals displayed.

Change-Id: I4dab1b18cdd46abf1a3a54a237f1cd314ac50feb
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-01-21 11:17:59 +00:00
hjk
f75a7fa036 Debugger: Support rvalue references in functions args with gdb
Change-Id: I5383ffa38f07e3f191619555a9e735c211b3dd8b
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-01-10 11:33:46 +00:00
hjk
2a67a86c2f Debugger: Add fallback when gdb.Value.cast() fails for typedefs
Fixes: QTCREATORBUG-18450
Change-Id: I9239beb7e1879a284e28a30579129fe487eb2dd2
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-12-17 13:21:02 +00:00
David Schulz
18bee3a08f Debuger: Fix enum dumper (again)
Fixes: QTCREATORBUG-21726
Change-Id: I25f4a84d88a915247456ac8e12877d503ae0d49a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-12-17 12:55:18 +00:00
hjk
5a8b198b9a Debugger: Fix display of multidimensional C arrays
Fixes: QTCREATORBUG-19356
Fixes: QTCREATORBUG-20639
Fixes: QTCREATORBUG-21677
Change-Id: Ie28b51c6caf526e125234959cbf11503d0683dc7
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-12-17 09:42:56 +00:00
hjk
81b6d4f637 Debugger: Robustify QEvent dumpers
There's no need to go through unknown enum sizes here, they are known.
Also, make it work for namespaced Qt. Avoid casts to typedefs.

Change-Id: I9c6fc44a03a0c245f05957306a129f6902f8cf85
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2018-12-12 09:27:20 +00:00
hjk
d4e79230d8 Debugger: Make LLDB startup failures more verbose
Fixes: QTCREATORBUG-19612
Change-Id: I7c8ebe3ec734265c8df8a684ccd6bb8991ea8390
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2018-12-11 12:08:06 +00:00
Orgad Shaneh
4cb4b7ba99 GDB: Fix address resolving for typedefed types
Reported upstream: https://sourceware.org/bugzilla/show_bug.cgi?id=23936

Fixes: QTCREATORBUG-21602
Change-Id: I0592679a6b5c4821175ef8e97e2206e0ac0be44d
Reviewed-by: hjk <hjk@qt.io>
2018-12-10 13:40:41 +00:00
Alexandru Croitor
18c6048099 Debugger: Fix thread switching when using lldb on macOS
The SetSelectedThreadByID method expects an integer, and not
a string.

Fixes: QTCREATORBUG-21563
Change-Id: Ibd5538a3214b73d7e87e66b59d6b9af0b93effeb
Reviewed-by: hjk <hjk@qt.io>
2018-11-27 11:00:40 +00:00
hjk
afe5699f8d Debugger: Show module in stack frames also for LLDB
Change-Id: I2b20b83bedf98a1b0eb17519fb4bec536e48dbaf
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2018-11-22 13:25:24 +00:00
Christian Stenger
8a21555235 Dumper: Remove unreachable code
Change-Id: Ic0e6c0b9d3d2e4e3a3bf8a63cce41ae23e1084bd
Reviewed-by: hjk <hjk@qt.io>
2018-11-19 14:22:57 +00:00
Christian Stenger
84576d3098 Dumper: Fix displaying enums with LLDB
Prioritize displaying as enum if a type is known
to be an enum. Otherwise this would just end up
get displayed as string representation of its value.
Enable respective dumper tests.

Change-Id: I3e5406e14a68f02741b6144bb54528b72cc8192d
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: hjk <hjk@qt.io>
2018-11-19 14:22:45 +00:00
Christian Stenger
deef478b38 Dumper: Fix activating frame for lldb
...when being attached to core file.

Change-Id: I4f8364285d756bae53b4a14ca8feb74f7fdaacfb
Reviewed-by: hjk <hjk@qt.io>
2018-11-14 10:09:05 +00:00
David Schulz
12f4ff5e5b Debugger: Fix Qt version detection in the cdbbridge
broken by b2052561cc

Fixes: QTCREATORBUG-21446
Change-Id: I303bb943a3b39703a6c5898aab99b89d35d1d2d7
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-11-12 14:09:52 +00:00
hjk
402991498f Debugger: Fix assignment to QString etc with LLDB
Task-number: QTCREATORBUG-21353
Change-Id: Ie3655738c249240d9fbf17e054fc8f79a284efd4
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-11-12 12:31:46 +00:00
Christian Stenger
1787eef68f Dumper: Fix handling of bitfields for MinGW
Fixes: QTCREATORBUG-19742
Change-Id: I8723da875607e00a833cd5a1ccb748e7f8ed4314
Reviewed-by: hjk <hjk@qt.io>
2018-11-12 08:51:49 +00:00
hjk
3ca343dd90 Debugger: Remove some dead code in lldbbridge.py
Change-Id: I368252f7ca83f66962f9c1d0e1726a77320fc886
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2018-11-09 12:30:53 +00:00
Alexandru Croitor
e74366bbea [Debugger] Add dumpers for QEvent and QKeyEvent
QEvent dumper will now show an additional [type] field with the enum
name representing the event type (aka the value of QEvent::type()).
For example: 'QEvent::KeyPress (0x0006)'.

QKeyEvent dumper will now show a value similar to:
"Pressed 'F' (key:70 vKey:3 mods:Shift)" as the initial non-expanded
value.
A new additional field called [Qt::Key] will show the enum value
of the key pressed, for example: Qt::Key_F (0x0046)

Change-Id: Id91431d0e3d3adeb89d6b74ea341a335ff37efdc
Reviewed-by: hjk <hjk@qt.io>
2018-11-08 15:28:37 +00:00
Alexandru Croitor
de32a631c3 [Debugger] Fix bitfield values to show up correctly using lldbengine
The bitpos value returned by lldb is the bit offset relative to the
beginning of the type, there is no need to do an extra modulus
operation.

Adjust dumper test to add the previously failing case.

The failing case happens when the class containing the bitfield has
more members in front of the bitfield.

Change-Id: I93678f78e6799843558ec53342a0ed49cac74f48
Reviewed-by: hjk <hjk@qt.io>
2018-11-08 15:12:10 +00:00
hjk
c016c6737b Debugger: Fix LLDB start with complex command lines
Fixes: QTCREATORBUG-21433
Change-Id: I1a248272566eac7f5fd07a8346500d245b62fbfa
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-11-08 14:21:21 +00:00
Christian Stenger
ace6708b88 Debugger: Fix display of null references
Fixes: QTCREATORBUG-21210
Change-Id: I529f38aad9b93707e09ffdd28885e46c2cfd158c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2018-11-06 11:26:05 +00:00
hjk
2556d4b44b Debugger: Implement disabling/enabling subbreakpoints with LLDB
Change-Id: Iaad8716b98d632e5a933b7f5b26549c7cb885ea7
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-11-06 07:37:15 +00:00
Alexandru Croitor
89fe2681f7 [Debugger] Add dumpers for Python "PyObject"s
The dumper calls PyObject_Repr and shows the result of that as the
value of a PyObject.

It also adds three new sub fields to show the object class (type),
super class (base class), and the meta type (the type of the class
object).

Change-Id: I0612833321f6d2b50826588e775cfa12e1db28e4
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2018-10-19 11:17:36 +00:00
Alexandru Croitor
f612833d83 Debugger: Pretty print the name of a function when using lldb
This is achieved by calling "po" on an address value casted to a
simple function pointer type, regardless of the actual type of
the function pointer. lldb does not complain, and reports the
library where the function is defined, its name, and location
in the source code if available.

Change-Id: I23ccce62e33bcf213ccdcb55c9836d54333f3c86
Reviewed-by: hjk <hjk@qt.io>
2018-10-15 15:39:16 +00:00
hjk
cd3011520f Debugger: Fix qfloat16 dumper for LLDB 6.0 on Linux
Needs some hint that floats are involved.

Change-Id: Ie6871ce3b6bb7aaff27e6c763a6002a6d0a90d70
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-10-12 11:24:46 +00:00
hjk
089b50f7d3 Debugger: Fix display of upper half of short unsigned ints
Change-Id: Ie15c66c02c15420436b26c65af3cee9a19634e5c
Fixes: QTCREATORBUG-21038
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-10-02 10:12:33 +00:00
hjk
ada0e43c93 Debugger: Fix use of external debug info for installer-based Qt
On Linux. Required installs are the gcc-built Qt libraries themselves,
the "Sources" and "Qt Debug Information Files" components.

Fixes: QTCREATORBUG-20693
Change-Id: I920efd641ce3ee4583741ea1db0bea18031adc51
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-09-24 13:37:24 +00:00
hjk
c3433519a6 Debugger: Add an explicit QObjectConnectionList dumper
Mostly for sanity reasons when debugging the QObject dumper itself.

Change-Id: I7d6267625f091788e73b0b28695e9b99e33ab3e3
Reviewed-by: David Schulz <david.schulz@qt.io>
2018-09-17 08:53:43 +00:00
hjk
4cb0b3fa73 Debugger: Make enum class dumper test pass again for gdb
Change-Id: Iaded82ab13f30e7222eb14f548ac72d1c6502b7d
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-09-06 13:41:51 +00:00
hjk
8de44d9281 Debugger: Make std::once dumper test pass again on Linux
Change-Id: I46ad9bb8ed3beb4aac23f5b3cca69f3ef0c92971
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-09-06 13:35:08 +00:00
Michael Weghorn
1ae96a9090 Debugger: Fix display of children in GDB's PlainDumper
The 'putSubItem' method expects an object of the
Value class as defined in 'dumper.py'.
Therefore, create such an object for the gdb.Value
when passing it into the method.

Task-number: QTCREATORBUG-21000
Change-Id: I5277f832ee2aae808824f3dcf728fdaa0e2a3c78
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2018-09-05 05:41:55 +00:00
Michael Weghorn
34840e8088 Improve displayed type for GDB's PlainDumper
Use the name attribute of the gdb.Type rather
than that of the pretty printer.

This e.g. displays 'std::vector<int>' rather than
just 'std::vector' for an int vector.

Change-Id: I53da01bb5ba67bcd8d7113beda6ff03e708d60f9
Reviewed-by: hjk <hjk@qt.io>
2018-08-30 12:39:05 +00:00
Orgad Shaneh
9ed36db854 Dumpers: Add a dumper for QPointer
It has an internal QWeakPointer<QObject>, which is not helpful. Cast to the
QPointer's template argument instead.

Change-Id: I9308c5eb9ea3867a682c4e4cba5d8041547981d1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2018-08-20 12:47:17 +00:00
Eike Ziller
9f60cdcdaa Merge remote-tracking branch 'origin/4.7'
Change-Id: I15962a85b0cc37c5a00e15ef7eac0445aad6c295
2018-08-20 09:05:18 +02:00
Orgad Shaneh
98b6fd26bf Dumper: Fix enum display in nested types
When used in SubItem, enums were displayed as
"value of type E at address <addr>".

Change-Id: Ieecfb791126c6f63f272817afc6c8d05f28b9242
Reviewed-by: David Schulz <david.schulz@qt.io>
2018-08-16 06:42:21 +00:00