Commit Graph

933 Commits

Author SHA1 Message Date
hjk
8e37b24279 Debugger: Disable LLDB's own visualizers.
Stop-gap measure until we can properly co-exist.

Change-Id: Ia6699eb7261e480587f6a21d54fb6b6107669b8f
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-11-01 14:25:23 +01:00
hjk
a8dece0b99 Debugger: Move some generic helper function to base dumper
Change-Id: I78dea9af7d397d49ce2b54086d275413f2477626
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-11-01 14:25:11 +01:00
hjk
909991164d Debugger: Re-introduce the '@\n' separator in LLDB communication
More robust.

Change-Id: Icc3c05d5ed7bcf35f38ba695b42a9716d00e8188
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-11-01 12:35:44 +01:00
Eike Ziller
fc6386be80 LLDB: Fix local debugging after b39f26e856
Change-Id: I6ba4a6daa0b4bc0132a447bdc938ce19a95903e3
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-11-01 11:33:32 +01:00
Fawzi Mohamed
ac17b73c20 lldb: allow lldbbridge.py to be directly imported in python
Change-Id: Ib0bcb4dd708e89cebe12407a3f8e375c79664a74
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-11-01 10:09:51 +01:00
hjk
fe0bddbd63 Debugger: Rework dumper detection
Recent versions of GDB seem to require 'make install' to find their
Python bits. Given that this is not really an option, check the
usual suspects, too.

Change-Id: I5217c0184681d4a86992fe0b8989498843b26cea
Reviewed-by: David Schulz <david.schulz@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-11-01 10:08:38 +01:00
Fawzi Mohamed
b39f26e856 ios: device debugging
switched to using a relay server

Change-Id: Ic3ddb48b818fa43894314f7fbaf9d7780fc01ade
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2013-10-31 18:19:09 +01:00
Eike Ziller
ddee9bdf56 LLDB: Fix shadowed variable support
SBValue has no 'name'

Change-Id: I670ed0f5e1deed70d96cc1944f6f9b0cda49e0c1
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-31 16:06:13 +01:00
hjk
afe4da2770 Debugger: Don't search for object names in non-QObjects
Change-Id: I9f7f944ed9dfccfe36d2610dd70908b8bb10727e
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-31 13:39:41 +01:00
hjk
075f55e0b9 Debugger: Memorize results of pointer lookups
Change-Id: If3dfdd21ac0737af7ee205b376b57d6e58ff6f91
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-31 13:39:08 +01:00
hjk
47afc21328 Debugger: Remove unused Dumper.intPtr function
Change-Id: I7716dbcfa028556647758611e279012eaae4928a
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-31 13:38:15 +01:00
hjk
a84963ec38 Debugger: More restructuring of globals in dumpers
Change-Id: I6cb45097dd355a9362c0555504871210ff712bdb
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-31 10:44:39 +01:00
hjk
e159fd4920 Debugger: Remove some workaround for GDB 7.1 in dumpers
We require 7.4 nowadays.

Change-Id: I9686e9ee751a19e765e72a5f0086889dc4a051da
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-31 10:44:22 +01:00
Eike Ziller
0cae053d11 LLDB: avoid python backtraces destroying all data
Change-Id: I1ea7ccad208c00d11e0579de219739cbabab8455
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-31 09:40:12 +01:00
Eike Ziller
b620716342 LLDB: Fix command reading loop
It could entirely miss commands sent by the engine.
The loop was waiting for something to come into stdin, but always only
read a single line from it, although it possibly already contained
multiple lines.
The patch simplifies the loop by removing the select() call entirely
and solely using sys.stdin.readline() which blocks anyhow.

Change-Id: Iff12aa051bb6e11c5ba30081d7c9d4e98940e231
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-30 18:04:13 +01:00
hjk
e176013140 Debugger: Move some global variables to the Dumper class
Change-Id: I5c8fd8a48f27ac70e6e39f645d64dcd788752e73
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-30 17:22:14 +01:00
Eike Ziller
f7fa44d48a dumpers: Add test for QUrl() and fix it
Change-Id: I84d4963210784dd982e897fd57dc9e5fad086aef
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-30 17:03:54 +01:00
hjk
068a2909cc Debugger: Don't recreate gdb dumper object every time
This allows for easier caching of "expensive" information.

Change-Id: I97f272c795483250bd00a0ff899cb8c27b0ab6e9
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-30 15:20:56 +01:00
hjk
700eca4b21 Debugger: Make memory accessible again with gdb < 7.4
gdb.selected_inferior is too new for now.

Change-Id: I4290574b6dd2803a2fd2f860700693e7b2ac6efb
Reviewed-by: Rainer Keller <rainer.keller@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-30 14:08:50 +01:00
hjk
dbb95ba7f2 Debugger: Fix pointer dereferencing in gdb dumper
Size depends on target arch, not host arch.

Change-Id: I8d7875159910f94b332967d14fa654a899f954fd
Reviewed-by: Rainer Keller <rainer.keller@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-30 14:08:23 +01:00
hjk
b42a1b5918 Debugger: Enable exception hiding with LLDB
Closer to "production behaviour"

Change-Id: Id72a667cdc44c5102b574db30b6e806ab1deba83
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-29 14:25:11 +01:00
Fawzi Mohamed
c162ba1391 ios simulator debugging
Change-Id: Ieee4a509b46da937c3bce21f72c77685946db4dd
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-29 14:03:58 +01:00
Eike Ziller
d918a32090 debugger: fix QHashNode dumper and QHashNode type check for Qt4
The previous workaround for the Qt 4 optimized int,uint,short,ushort
QHashNode wasn't working for the QHashNode dumper itself because of
unknown key type. Instead we first try to find the 'key' child directly,
if that fails we look for it in the second child (which would be the
anonymous union from the optimized hash node, which contains the key).

Also fix the expected type for QHashNode in the optimized case for Qt4

Change-Id: Ib48c2c0afec081ff38cd750c3d515a5e678e9661
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-29 12:40:46 +01:00
Eike Ziller
bc16e88288 dumpers: share the code for extractTemplateArgument
Change-Id: Ic1b03d2dffdfb7ba6ead191601127b54af38b3cd
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-29 12:25:26 +01:00
Eike Ziller
7ba935c44b debugger: Fix QDir dumper for Qt4 64bit
Also make the structure more self-explained

Change-Id: Ia5080f4e07e2a8b7c6b18e1353a4cf1cf3488361
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-28 16:41:10 +01:00
Eike Ziller
48007785b0 debugger: Fix Qt4 QFile dumper
Change-Id: Ifd2caaef4d0c286f2855175acb2dc1b835213c37
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-28 16:40:50 +01:00
Christian Stenger
c726f3c47e Dumpers: Fix standard types (C++11) for old gcc
Change-Id: Ic208a45f6d0c7419d83dccd78b552c734421c953
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-28 16:37:10 +01:00
Eike Ziller
a3c4fe1ff2 dumpers: Fix QHash<int,...> dumper for Qt4
In Qt4 (u)int hashs are optimized and the key is inside an
anonymous union, so, at least with LLDB, we cannot reference
"key" directly as a child of the QHashNode

Change-Id: Id7cac3d08fa85af599f2b2564a6b1f11b465c7b2
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-28 12:50:55 +01:00
Christian Stenger
1ca3da6117 Dumpers: Fix dumper for QVariant holding QList for old GDB
Change-Id: Id34806f06546ad9a6618f9b9431143465a988c1d
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-28 12:50:32 +01:00
Eike Ziller
c6faedf1c7 debugger: generalize is32bit() through ptrSize()
That also makes lldb dumper actually test for bitness instead of
assuming 64bit

Change-Id: I6207bac04817e1f4700247dc00d2dfdace1e5100
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-28 11:27:47 +01:00
hjk
0190eb59f9 Debugger: Show shadowed variables with LLDB
Change-Id: If93547396384fe5b421c4b601b52476a23cdfa89
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-25 16:12:03 +02:00
hjk
7f5366796c Debugger: Fix display of vector extensions with LLDB
Like char __attribute__ ((vector_size (8))) ...

Change-Id: Ie93547396384fe5b421c4b601b52476a23cdfa89
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-24 18:49:27 +02:00
hjk
ab92c14bbe Debugger: Fix std::complex dumper for LLDB
Change-Id: I5ffb0f60039bb05f8467e925e71cf710a0712791
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-24 18:19:54 +02:00
hjk
6c673a042f Debugger: Fix std::deque dumper with LLDB
Change-Id: Idd3547396384fe5b421c4b601b52476a23cdfa89
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-24 17:40:22 +02:00
Eike Ziller
9a57a41a7a Fix QDateTime dumper with various Qt versions and bitness
Change-Id: Iba15c1b27dc83e8949fef5fd25de61cc2b20be30
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-24 17:14:54 +02:00
hjk
0b8f3c3e9d Debugger: Continue LLDB event loop after exceptions
Change-Id: I4d3547396384fe5b421c4b601b52476a23cdfa89
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-24 15:29:44 +02:00
hjk
6d4cc2231a Debugger: Handle _Rb_tree_const_iterator, too
Change-Id: I01baa597976ec5f6e84c8c52aff6e617082b1a28
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-24 15:25:40 +02:00
hjk
cd3c084df3 Debugger: Improve QSharedPointer dumper
Make it work with LLDB, show simple values always directly.

Change-Id: I463ef81183792f85243d679dee69a41db00bed07
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-24 15:16:05 +02:00
hjk
71080c8b8a Debugger: Fix std::map::iterator dumper for LLDB
"Better" spaces in type names again...

Change-Id: I21aafa021fd4893fb521251c9b4b9572c2beef44
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-24 12:46:27 +02:00
hjk
fc4a953bb5 Debugger: Simplify LLDB communication protocol
Produce proper JSON directly.

Change-Id: I61aaba021fd4893fb521251c9b4b9572c2beef44
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-24 12:26:17 +02:00
hjk
46c1769e24 Debugger: Show at least size for std::__1::unordered_map
Change-Id: I51aaba021fd4893fb521251c9b4b9572c2beef44
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-24 12:24:44 +02:00
hjk
1daac29647 Debugger: More QRegion dumper fixes
Change-Id: I01aaba021fd4893fb521251c9b4b9572c2beef44
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-24 11:37:50 +02:00
hjk
b889bb1608 Debugger: Make QRegion dumper more independent of debuginfo
Change-Id: I332e17cd4c6a167d273f31f4e7ff63c149a5d34b
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-23 19:27:33 +02:00
hjk
c60cc101dd Debugger: More robust type lookup in QHashIterator dumper
LLDB needs exact matches of spaces

Change-Id: I442e17cd4c6a167d273f31f4e7ff63c149a5d34b
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-23 19:27:25 +02:00
hjk
0614587ebf Debugger: Use more robust way to look up QMapNode types
LLDB needs exactly the same spacing as in the debug info.

Change-Id: I8a2e17cd4c6a167d273f31f4e7ff63c149a5d34b
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-23 17:52:15 +02:00
hjk
e94e403052 Debugger: Fix QList<QStringList> dumper for LLDB
QStringList is movable in Qt 5

Change-Id: I5b0bee9c55e54f62c93a8515af0f56cdafed78bf
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-23 16:34:09 +02:00
hjk
04eaf6cdfc Debugger: Make function pointers visible with LLDB
Change-Id: I230bee9c55e54f62c93a8515af0f56cdafed78bf
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-23 15:21:18 +02:00
hjk
de40fff331 Debugger: Silence some debug output
Change-Id: I80cd68574586fdaf463d59b6f4dfb9149a120089
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-23 12:59:24 +02:00
hjk
07492890f7 Debugger: Add a parseAndEval implementation to the LLDB bridge
Makes e.g. QVariant5 dumper pass

Change-Id: I8fad68574586fdaf463d59b6f4dfb9149a120089
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-23 12:58:38 +02:00
hjk
a590f8de05 Debugger: Fix some of the array dumpers with LLDB
Change-Id: Ie2b12a526ff7199bcadfc21a3deb5354063a3e3b
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-23 12:41:17 +02:00