Commit Graph

1467 Commits

Author SHA1 Message Date
hjk
73865034c6 Android: Use adb:// in ConnectRemote
This is apparently the right thing to do anyway and also helps to
select the right emulator or device when multiple ones are connected.

In that situation otherwise an error

  "Expected a single connected device, got instead 2 -
    try setting 'ANDROID_SERIAL'"

would occur.

Change-Id: I650a221d1a321d4dd9035411f85c7a68244c20e2
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2020-05-15 11:37:35 +00:00
Christian Stenger
dd9bed93f0 Dumper: Fix Python 3 support
Change-Id: I3b981a0418b2a407adfbdbab5f6b73176aeb588f
Reviewed-by: hjk <hjk@qt.io>
2020-05-14 13:16:13 +00:00
hjk
7a63a47ef0 Debugger: Work around for gdb reporting zero array sizes in some cases
Task-number: QTCREATORBUG-23998
Change-Id: I101d032705b66faf50260067f6aa604214f09298
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-05-14 10:52:18 +00:00
hjk
a6e1894274 Debugger: Report LLDB error if bridge could not attach to process
Change-Id: Id54c0e21d7d803505b45f92ecf0a208771d10b81
Reviewed-by: David Schulz <david.schulz@qt.io>
2020-05-13 09:08:18 +00:00
hjk
ca862e3fff Debugger: Fix LLDB listing registers when no frame is selected
Change-Id: I6c3d193a2622ed07c34e68bf8b5780d55520e4f2
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-05-12 05:52:08 +00:00
hjk
65935ce03c Debugger: Fix startup when Python's json module is missing
Task-number: QTCREATORBUG-24004
Change-Id: I1c0563868374263f13cec3a8f40138bce71338d6
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
2020-05-11 10:35:32 +00:00
Eike Ziller
20ef5c6de3 Merge remote-tracking branch 'origin/4.12'
Change-Id: Ibbf9f16677a58bdcdd3ce63701ffa34db6f44916
2020-05-11 11:36:22 +02:00
hjk
9403c7c916 Debugger: Consolidate LLDB startup code a bit
Change-Id: I0c19a76ad6f1e7b4602b9bd2157cc6855e049402
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-05-07 15:12:33 +00:00
hjk
310c954779 Debugger: Make sure to not select frame -1 with LLDB
This can appear as (non-existing) preferred frame index in backtraces
consisting only of frames without debug info. Fall back to top most
frame in that case.

Change-Id: Id7bb941d5fc3080aff3853cebb7b92afdd0ba4ea
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-05-07 09:04:28 +00:00
hjk
54dd137902 Debugger: Make LLDB attach to local process work (again?)
Change-Id: I48ec7b5251db490d1c8e17affb3c1dc1ce22bece
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-05-07 08:02:44 +00:00
hjk
e73f05253e Debugger: Simplify LLDB bridge startup
No need to start the debugger event loop if the engine setup fails

Change-Id: I6bdeda0d2609c79aa5fafff7bc4b373a0bf14fbd
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-05-07 07:39:29 +00:00
hjk
2dfa539b96 Debugger: Avoid race condition on setting initial LLDB breakpoints
Breakpoints inserting is async, so they did end up when the process
was running already.

This adds an extra roundtrip. Better, but more intrusive solution
might be to set the initial breakpoints synchronously, but that
would touch all engines.

Change-Id: Ia728a9c5ae8f1d6d29d3cc02b9e2d04952091fe9
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-05-07 07:12:46 +00:00
David Schulz
04da8f4178 Debugger: prevent calling functions on windows targets
This will result in a crashing gdb.

Fixes: QTCREATORBUG-23982
Change-Id: I59b65c5854bb4b7cbd59522a555388d1e833a560
Reviewed-by: hjk <hjk@qt.io>
2020-05-06 12:55:49 +00:00
Eike Ziller
e9661e43cb Merge remote-tracking branch 'origin/4.12'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri
	src/libs/qtcreatorcdbext/qtcreatorcdbextension.cpp

Change-Id: If6963d1ef7b5a1ea6343f68c8e7ce6fb5f482f21
2020-04-28 15:48:36 +02:00
Jeremy Ephron
7982c440d5 Debugger: Fix STL map size bug on Windows
Fixed a bug in obtaining the size of STL map with MinGW 32/64. Retrieved
the size directly rather than unpacking the size from the data (which
is not present in on Windows). Tested for compatibility with LLVM/LLDB
on macOS.

Change-Id: I4d836d6288465e82d694de0405965586683c1355
Reviewed-by: hjk <hjk@qt.io>
2020-04-28 08:25:04 +00:00
Eike Ziller
8984272769 Merge remote-tracking branch 'origin/4.12'
Change-Id: I296a61fe43aea134de9e7a6ee8042af3f45f5e99
2020-04-23 11:09:15 +02:00
hjk
252a0431d1 Debugger: Fix dumper for std::unique_ptr with custom deleter
Task-number: QTCREATORBUG-23885
Change-Id: Ifba6ef7233886d1c9341e7912d6924cd9afbc4eb
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-04-23 06:08:12 +00:00
hjk
7d3c6f7c02 Android: Start lldb-server and attach
Change-Id: Id7c45d9161d3389e9de419835c312d87916a34bc
Reviewed-by: David Schulz <david.schulz@qt.io>
2020-04-22 08:12:48 +00:00
David Schulz
1eacbc98a8 Debugger: add dumper for Utils::Environment
Change-Id: I2e80447b9b9690376a6d789c8b18d33cca22f4ab
Reviewed-by: hjk <hjk@qt.io>
2020-04-17 07:20:45 +00:00
hjk
80f3f34c96 Debugger: Pass symbol file to LLDB and use it
Instead of guessing from the executable.

Change-Id: I5f57020446bc5e0f7915dac487a32d673eb97952
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-04-03 10:02:47 +00:00
hjk
7f958700a0 Debugger: Make LLDB work a bit with remote Linux
The device on remote side *has* to configure (/usr/bin/)lldb-server as
"GDB server executable" in the device settings.

A real gdbserver does not work.

Change-Id: I045ffb60a824e06ee683d8bdfffeb480a580af5f
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-04-02 15:50:19 +00:00
David Schulz
df2efd7df6 Dumper: raise exception in gdbbridge callHelper on Windows
Gdb from MinGW 7.3.0 and 5.3.0 crashes on Windows when we try to
evaluate expressions that result in a function call. At least prevent
evaluating such expressions from within the dumper.

Task-number: QTCREATORBUG-23477
Change-Id: Ic14148a43b95aa1b52c1d4488958fa66eccdc0b5
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-03-09 09:20:06 +00:00
David Schulz
472797a1d1 Dumper: avoid redundant labeling
Change-Id: I85581cfe34a60e7f8a3e3590358443a15b7d2d4c
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
2020-03-02 12:14:22 +00:00
David Schulz
d91d4aa759 Dumper: remove unused imports
Change-Id: I447c9697dbd631ab26358c193c274484e70a908d
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-03-02 12:13:34 +00:00
David Schulz
0776340ad8 Dumper: unify Codestyle
generated with autopep8 and the introduced setup.cfg

Change-Id: I5b55a7937f2cde81be59d2b434e94ada1a4af5ab
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-02-28 08:35:05 +00:00
David Schulz
4422805cec Dumper: replace xrange with range
Change-Id: I09b3dd4da548643e927dbc5bb3130c28a746396b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-02-26 10:26:55 +00:00
David Schulz
44db8e2eab Dumper: replace import * with explicit imports
Using imports like

 from foo import *

is considered as bad habit and it reduces
static code analysis usability.

Change-Id: I56a175f4c7b231e2b8e486bd9d1c65543720f56a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-02-25 13:22:50 +00:00
David Schulz
e17c96cf11 Dumper: move global enums and functions to utils
Change-Id: I11f5f0d970cd23a5fd907d33daa3cb8a441d0c58
Reviewed-by: hjk <hjk@qt.io>
2020-02-24 07:47:40 +00:00
Andre Hartmann
710836f222 Debugger: Fix std::optional dumper
Tested under Ubuntu Linux 18.04.1
with gcc 7.4.0 and gdb 8.1.

Started-by: Tobias B. on Jira
Fixes: QTCREATORBUG-22436
Change-Id: Id75c817f26bf16e4d93332ab24068cacbe5d9d8e
Reviewed-by: Marcel Petrick <mail@marcelpetrick.it>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2020-02-23 14:33:45 +00:00
Eike Ziller
bd5dae90ad Merge remote-tracking branch 'origin/4.11'
Conflicts:
	share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5informationnodeinstanceserver.cpp

Change-Id: I5e424e34db619bb769c7abc1e8651b7b40210839
2020-01-20 09:59:27 +01:00
Alexandru Croitor
850ae600fb [lldb] Fix lldbridge.py to work in standalone lldb on macOS 10.15
Change-Id: I6220e426e3556d68dcb318d709f3573601c1aa96
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-01-16 09:38:16 +00:00
Orgad Shaneh
5872c60a45 Dumper: Fix syntax error
Change-Id: I8e611b1cb358872d9e0c7302ed8a4d3e0b7d9f3c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-01-16 08:41:59 +00:00
Eike Ziller
1c37415604 Merge remote-tracking branch 'origin/4.11'
Change-Id: Ib47833b23e90c5f08b318d3d4985a4f3a450ee4b
2020-01-15 07:21:52 +01:00
Christian Stenger
fefdbdfcd8 Debugger: Do not waste CPU when using LLDB
Fixes: QTCREATORBUG-23311
Change-Id: I5b1c40663c7977322e806af2e0393a3730e70049
Reviewed-by: hjk <hjk@qt.io>
2020-01-14 10:02:13 +00:00
Eike Ziller
69bcf7ca60 Merge remote-tracking branch 'origin/4.11'
Change-Id: Ica0d173a08ff3f0296e875aa324d5bb6974bd90f
2020-01-08 07:13:32 +01:00
hjk
dff4469baf Debugger: Use a more convenient way to create timing samples
Change-Id: I4ca983957c81a1f5f963a85b16a2d1b255b2cd2d
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2020-01-07 12:14:27 +00:00
Eike Ziller
e16876df0c Merge remote-tracking branch 'origin/4.11'
Change-Id: Ieb0bb1ebab9a5efb42d15bbeac2cd4c46a6de962
2019-12-18 09:14:14 +01:00
hjk
0cdea40606 Debugger: Fix std::string dumper for GCC 9
Fixes: QTCREATORBUG-22753
Fixes: QTCREATORBUG-22680
Change-Id: I75e2855d27bc2b83880379fee2364586b9d4a90e
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-12-17 08:44:14 +00:00
Orgad Shaneh
49f6b0146a Merge remote-tracking branch 'origin/4.11'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri
	src/plugins/mcusupport/mcusupportrunconfiguration.cpp
	src/plugins/python/pythonproject.cpp
	src/plugins/qmakeprojectmanager/qmakestep.cpp
	src/plugins/qmlprojectmanager/qmlproject.cpp
	src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp

Change-Id: I22507be28fd80c49c9fee0dff5937a40db176a82
2019-12-07 18:39:54 +02:00
Nikolai Kosjar
26b34a0cd4 Debugger/Dumper: Fix dumping CPlusPlus::Token
Change-Id: I368f5227ecb675a653f65d76e83622305390b5ff
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2019-12-04 07:38:01 +00:00
Christian Stenger
bcde926257 Debugger: Stop cleanly after post mortem debugging
..instead of trying to start over. Starting over may work
but may also end up in strange issues which must get
handled on the user site otherwise.
Especially relevant for pyside projects that are using
QApplication and similar where the old application
instance has to be destroyed before another one can be
created.

Change-Id: I6af132da8499ef4ed983491cdc423fa73ea9ba32
Reviewed-by: hjk <hjk@qt.io>
2019-11-13 05:42:19 +00:00
Christian Stenger
49930aa5f9 Debugger: Improve pdb debugging
When a script used __file__ to refer to other
files by constructing relative paths it ended
up trying to use a file relative to the pdbbridge
instead the original python file.
Fix this by bringing the bridge closer to the
original pdb code.

Change-Id: I22dda440c78349bfd3dcf4ce748042cc77eb4bee
Reviewed-by: hjk <hjk@qt.io>
2019-11-12 12:36:45 +00:00
Eike Ziller
fcb12a275f Merge remote-tracking branch 'origin/4.10' into 4.11
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri
	src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
	src/plugins/projectexplorer/deploymentdata.cpp
	src/plugins/projectexplorer/msvctoolchain.cpp

Change-Id: I64c304fc71435629a6a0060a9df71e8952699508
2019-10-16 15:27:22 +02:00
Michael Weghorn
e2e96cab52 GDB: Handle 'pretty_printer.to_string()' returning None
The documentation for the GDB pretty printer function
'pretty_printer.to_string' says [1]:

> [...]
> Finally, if this method returns None then no further
> operations are peformed in this method and nothing is printed.
> [...]

Therefore, skip this part if the printer's 'to_string' method returns
'None' and only fall back to assuming LazyString otherwise.

This e.g. fixes the std::pair pretty printer (for gcc-9 libstdc++6) for
which "<not accessible>" was shown previously in the debugger's
locals/expression view. Now it shows the object's address and allows
expansion to see the values for the 'first' and 'second' members.

[1] https://sourceware.org/gdb/onlinedocs/gdb/Pretty-Printing-API.html

Change-Id: I33b1af82f731c347314af76c533b096b8a5afe21
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2019-10-16 08:23:30 +00:00
hjk
3e2e0c6edc Debugger: Use GDB's own pretty printers more cautiously
Looks like there is no attempt made on the GDB/libstdc++ side
to recognize uninitialized objects, so we cannot convert
"all 932 million children, I swear" to a list.

Task-number: QTCREATORBUG-22887
Change-Id: I3bf7e53c8b11ece3e1182d8446e959a66a41665a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-09-30 06:27:24 +00:00
Eike Ziller
8263f73a4a Merge remote-tracking branch 'origin/4.10' into 4.11
Change-Id: Iad66b08f8d6d7f14319674ae6bb26cdba43b3bfa
2019-09-26 14:59:33 +02:00
hjk
08149a7c34 Debugger: Improve assignment to simple expressions with LLDB
Task-number: QTCREATORBUG-22696
Change-Id: Ifa084046ff83ba071c9e96a4221d7b4a09bfc22f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-09-26 08:48:54 +00:00
hjk
4013f0cdf0 Debugger: Use Python 3 prints also in pure LLDB bridge code
Task-number: QTCREATORBUG-22955
Change-Id: I762acd289c50fe5817b3e6e915f35c2388c74d44
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
(cherry picked from commit 7f29fa2030)
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-09-25 13:18:06 +00:00
Christian Stenger
9a5826d19c Debugger: Fix debugging with LLDB 1100.x
Tweak handling for LLDB provided by Xcode 11 slightly,
as the state handling of the process went astray when
using the debugger Python 3 based.

Task-number: QTCREATORBUG-22955
Change-Id: Ie070049d210a570993507ed940d141237aab89ce
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-09-25 13:17:53 +00:00
Eike Ziller
0491c1c06c Merge remote-tracking branch 'origin/4.10'
Change-Id: I4a22cdf4d7d5aab2083d5f9f7baaa38e510f83fd
2019-09-23 12:31:58 +02:00