Commit Graph

1394 Commits

Author SHA1 Message Date
Orgad Shaneh
fd32b222ee LLDB: Escape strings for correct parsing
Sample broken output:
>result={token="9",lldbid="1",valid="1",hitcount="0",threadid="0",oneshot="0",
condition="",enabled="1",valid="1",ignorecount="0",locations=[
{locid="1",function="foo()",enabled="1",resolved="0",valid="1",ignorecount="0",
file="F:\Projects\test\main.cpp",line="5",addr="4199979"},],
file="F:\Projects\test\main.cpp",line="5"}@

When parsed as GdbMi value, the strings are expected to be escaped.

Change-Id: Idb923516c1cf6e25b970ad08fae977bdf1045b4b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-09-03 07:39:50 +00:00
Orgad Shaneh
53c763029b Dumper: Fix size of refcount member in basic_string
It's an int. Still, the position is 3 pointer-sizes back due to padding
(the next member after this struct is the char pointer).

The pointer-size + bitwise stripping of the LSB probably doesn't work
on big-endian archs.

Change-Id: I4413d9b32986d1ea0be9abe1be4382ee36a9456c
Reviewed-by: hjk <hjk@qt.io>
2020-08-30 10:10:51 +00:00
Eike Ziller
6efb09a86a Merge remote-tracking branch 'origin/4.13' into master
Change-Id: I8b11dad770b37a7f6029ae818c9d92a24818e56d
2020-08-26 13:12:21 +02:00
Orgad Shaneh
29ecf16ed3 Dumpers: Fix string+allocator dumper for old GCC versions
Older versions of GCC headers don't have _M_string_length.

Tested against GCC 4.4.4.

Change-Id: Ib3a025edeb26afce7fd54acfb6e965e64200f024
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2020-08-26 09:23:27 +00:00
Eike Ziller
3944162039 Merge remote-tracking branch 'origin/4.13' into master
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri
	src/plugins/cmakeprojectmanager/cmakebuildstep.cpp
	src/plugins/cmakeprojectmanager/cmakebuildstep.h
	tests/auto/debugger/tst_namedemangler.cpp
	tests/auto/qml/codemodel/check/tst_check.cpp

Change-Id: Iefd5f71c03c0078513b76a92af764a4fb22ee4c2
2020-08-10 15:56:54 +02:00
Christian Stenger
c6c320a6ea Debugger: Avoid decoding error when fetching native value
Change-Id: I4cfe144c7d96134e373e6d6d6141eb05a7dfe911
Reviewed-by: David Schulz <david.schulz@qt.io>
2020-08-10 07:22:02 +00:00
Christian Stenger
57c6a32b10 Dumper: Fix dumping of enum values for cdb
Fixes the Bitfields test.

Change-Id: I2aab020f1dc8be40ab994586d0989452c80bb8e3
Reviewed-by: hjk <hjk@qt.io>
2020-07-31 13:09:02 +00:00
hjk
557d7723eb Debugger: Fix Qt6 QBitArray dumper
Task-number: QTCREATORBUG-23390
Change-Id: I8f233524d1daa7afe65b4414e5c9926dce9811e3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-07-27 13:21:05 +00:00
hjk
4a434e14d5 Debugger: Fix QList dumper for Qt6 empty lists
Plus some cosmetics.

Task-number: QTCREATORBUG-23390
Change-Id: I959437902b74d234372c60055ef2f774f411850c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-07-27 13:20:57 +00:00
hjk
961560df6f Debugger: Fix Qt6 QString/QByteArray dumper
... for the fromRawData() case.

Task-number: QTCREATORBUG-23390
Change-Id: Ic603df428d03aa61f0fcde4e090d36231a7e05d7
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-07-27 13:16:54 +00:00
Eike Ziller
b18711da91 Merge remote-tracking branch 'origin/4.12' into 4.13
Conflicts:
	share/qtcreator/debugger/lldbbridge.py

Change-Id: Ia444f6424fb35b9a539e157afcee868161535272
2020-07-06 16:23:13 +02:00
Orgad Shaneh
e3312205ed Dumper: Adapt to Id that moved from Core to Utils
Change-Id: I6437d813234dc22923a313d540f115e070edeba7
Reviewed-by: David Schulz <david.schulz@qt.io>
2020-07-06 09:37:21 +00:00
Eike Ziller
d0e3f5ca98 Fix debugging C++ on iOS devices
Partially revert 7f958700a0 for 'remote-ios'.
The original commit changed the way attaching to a remote server or process
works, attempting to make it work with lldb-server on a remote linux device.
That breaks connecting to the debugging server on iOS devices.

Fixes: QTCREATORBUG-23995
Change-Id: I7a793fa73a564a4ef19cf82e13c2ad50d4247ee3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-07-06 09:18:40 +00:00
Orgad Shaneh
00e814fdd1 Debugger: Respect "Use Dynamic Object Type for Display"
Broke in 5efa84830b.

Task-number: QTCREATORBUG-24280
Change-Id: Ice4b9d826d2402efb354180886d35926a2513e5a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-07-03 09:07:46 +00:00
Michael Weghorn
70c4889ac9 Debugger: Show text representation for 'char *' typedefs etc
'tryPutSimpleFormattedPointer' takes care of nicely
showing the actual string representation of character
arrays if the innerType is one of 'char', 'signed char',
unsigned char', 'CHAR'.

To make this work for typedefs of those types as well,
first resolve the typedef before passing the value to
'tryPutSimpleFormattedPointer' from 'putFormattedPointerX'.

This e.g. improves the display of variables of type
'const gchar *'.

Fixes: QTCREATORBUG-24264
Change-Id: I477b6d7552f9c30c12d819aa5f37e64e4f444969
Reviewed-by: hjk <hjk@qt.io>
2020-06-26 14:14:23 +00:00
hjk
1c9194d2eb Debugger: Make QByteArray, QString and QList dumper work with Qt dev
Note that this is more a temporary workaround as there are more changes
to come (qsizetype instead of int for sizes, switch QList/QVector
aliasing).

Task-number: QTCREATORBUG-23806
Change-Id: Ic815fe293b1c4922276c127dec61930dc365acae
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-06-18 07:48:59 +00:00
Eike Ziller
8b8ecfa28f Merge remote-tracking branch 'origin/4.12'
Conflicts:
	src/plugins/cmakeprojectmanager/fileapiparser.cpp

Change-Id: I39f8c2be859be043f506bef77de9bb5b42d38165
2020-06-15 11:30:34 +02:00
Christian Stenger
9e4eafccd2 Dumper: Fix python code for Xcode 10.1
Change-Id: I65797bac8b668ce85082eccf6520147a2a4c5680
Reviewed-by: hjk <hjk@qt.io>
2020-06-11 12:58:32 +00:00
hjk
28d34d196e Debugger: Fix QJson dumper for Qt >= 5.15
Storage is internally based on QCbor now.

Since this works better when having dumpers for QCbor values,
add those, too, for Numbers, Strings, Arrays, Maps for now.
None of the custom types.

Fixes: QTCREATORBUG-23827
Change-Id: Idf281d859aaf8556d9895646bbc091af85b34157
Reviewed-by: David Schulz <david.schulz@qt.io>
2020-06-08 09:34:35 +00:00
hjk
63655081c3 Debugger: Mark a few more sub items as expandable
... and remove some of the now implicit putNumChild() calls.
Also, adapt docs.

Change-Id: I1ab1dafada95a1703cd6a9ba5b9e7e4166b48cd9
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-06-02 13:02:25 +00:00
hjk
090110e1d8 Debugger: Fix passexception_s_ for GDB CLI
The intention was to always show errors, as this is likely an error
in the dumpers themselves. The case of operating on uninitialized
data is rather rare in the manual use case here.

Change-Id: I08874e302b402be94f760f744e82e127855dd16f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-06-02 12:34:21 +00:00
hjk
e87c301787 Debugger: Fix gdb command line use of dumpers
Fixes: QTCREATORBUG-24103
Change-Id: I4a771e3694879755c46623c8f089857437eb0fb5
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-06-02 12:04:23 +00:00
Eike Ziller
227904d4a6 Merge remote-tracking branch 'origin/4.12'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri

Change-Id: Ic39945a0e3e140a9467b4b4f572929257ff3a324
2020-05-26 09:00:05 +02:00
hjk
e71c0b7fe2 Debugger: Drop unnecessary use of ModuleNotFoundError
That's Python 3 only, and doesn't add value here.

Change-Id: I9b1702ea8b0b0ddb090fdfc393228b4430da0b07
Task-number: QTCREATORBUG-24004
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-05-25 23:53:47 +00:00
hjk
c6007f5a2c Debugger: Funnel some LLDB message to the AppOutputPane
This could be extended to the other bridges, not done in this patch.

Change-Id: I620290049b7c95f8e3fb7584d4ca99a42fd343d4
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-05-18 06:47:10 +00:00
The Qt Project
8f1be3f343 Merge "Merge remote-tracking branch 'origin/4.12'" 2020-05-15 12:49:43 +00:00
Eike Ziller
52b7ec058b Merge remote-tracking branch 'origin/4.12'
Conflicts:
	src/plugins/mcusupport/mcusupportsdk.cpp

Change-Id: I1583fa81adc0218ad4657baa347c08e9e29f88e6
2020-05-15 14:49:11 +02:00
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