Commit Graph

1467 Commits

Author SHA1 Message Date
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
hjk
ad7e12447c Debugger: Add 64 bit int extraction for LLDB
Fixes QDateTime dumper

Change-Id: I1c408e30ee0cdc22610e3037f94de5f7d246accf
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-23 12:31:47 +02:00
hjk
d13a8c1ada Debugger: Add dumper for QByteArrayData
Change-Id: Ia13be75a6466b710ddfe66665b124b1e2335a72c
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-23 12:31:23 +02:00
hjk
9f66b6384a Debugger: Fix QVariant{Map,Hash} dumper with Qt 5
Change-Id: I5be3b960a7a3091dc77555883d93e3d89b17381d
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-22 19:14:33 +02:00
hjk
4c35310cec Debugger: Adjust QDateTime dumper after Qt 5.2 changes
Task-number: QTCREATORBUG-10232
Change-Id: I10551a258edb9456c4a9f93a3bfb374a8f07fc7d
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-22 19:12:31 +02:00
hjk
a6c060cc65 Debugger: Try to extract Qt version from QtCore
This won't work without inferior calls (e.g. when loading core files),
so the old code is needed as fallback.

Change-Id: I1c9efc06374b00bc391bf55528546ccefc60349b
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-22 19:12:22 +02:00
hjk
363c9c87b2 Debugger: Work around strange GDB behavior with overload resolution
Contrary to the documention, using the default (i.e. 'on') it seems to _require_
xplicit casting of function pointers:
 (gdb) p &Myns::QMetaType::typeName
    -> $1 = (const char *(*)(int)) 0xb7cf73b0 <Myns::QMetaType::typeName(int)>
 (gdb) p Myns::QMetaType::typeName(1024)
     -> 31^error,msg="Couldn't find method Myns::QMetaType::typeName"
But we can work around on the dumper side. So let's use the default from now on.

Change-Id: I3e2a87df797c6abab6183b4c121b843e5035cd47
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-22 19:10:47 +02:00
Eike Ziller
5686f5fd70 QUrl dumper: use correct string type name and extend test
Change-Id: I7fe88d11b3d52ba31d3e8564b673a35001e31488
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-22 13:20:03 +02:00
hjk
bdf8655376 Debugger: Make LLDB auto test start again
Change-Id: I11358adc8c01dd1261627f35d0f35500e8b34989
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-10-22 12:46:25 +02:00
Eike Ziller
515a958083 Fix Qt5 QUrl dumper
Change-Id: I5da72aebe30a3f7030b44566561fca25ce867c0a
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-22 10:47:21 +02:00
hjk
fc52b30450 Debugger: Simplify QVariant{Hash,Map} dumper
Change-Id: I4c5c79f9b2b2d739971d9f50a2b48cfde005e167
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-22 10:11:17 +02:00
Eike Ziller
d33f7fd2c7 LLDB: Implement qtVersion() for dumpers
Reads the version from Qt Core instead of just assuming Qt 5

Task-number: QTCREATORBUG-10427

Change-Id: Ifa7944c37449afe95c26b2c57e694be8eb8cbf4d
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-21 17:13:45 +02:00
hjk
fafc00da4a Debugger: Fix QVariantMap/QVariantHash dumper with Qt 5
Change-Id: I71358adc8c01dd1261627f35d0f35500e8b34989
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-21 15:02:40 +02:00
hjk
6f6999bee3 Debugger: Fix boost/time dumpers with Python 3
Change-Id: Ia93034641889603c4de57babf0117132eeb0c0cb
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-21 15:02:24 +02:00
hjk
8c02d6e0dd Debugger: Fix QChar dumper with Python 3
Change-Id: I7da412c9bdaf3a8f65484ac99f06fc31a5cdc1c3
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-21 14:15:56 +02:00
Eike Ziller
51a257637e LLDB: Set environment for debugged process
Task-number: QTCREATORBUG-10030

Change-Id: Ib487cee704ea30f52c52f6f025823637fa4199eb
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-21 12:25:49 +02:00
hjk
ffe50efa00 Debugger: Remove wrong check in boost::shared_pointer dumper
Task-Number: QTCREATORBUG-10441
Change-Id: I404fe9848444c2b03c086d027c0f3716f0bb3542
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-10-21 02:12:34 +02:00