Commit Graph

73 Commits

Author SHA1 Message Date
hjk
6975be4f54 Debugger: Don't memoize guessed Qt versions too quickly
There might be better data after more shared objects are loaded.

Change-Id: Ib81226b4cafe0d067d62087e320413f8d070bee8
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-03-07 14:24:49 +01:00
hjk
b7ebfd274f Debugger: Move some common bridge code to dumper base
Change-Id: I9fd988c84bff5e02bc45478994f27a7bddb3358b
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-03-07 13:14:13 +01:00
hjk
9bb0d18872 Debugger: Fix some fallback in type lookup
Just in case. I can't trigger the codepath anymore.

Change-Id: Ia1cecca7a9628b36128fa6efbb2f6ffbc4bef4b2
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-02-28 17:15:37 +01:00
hjk
d190263e9a Debugger: Re-work qt namespace detection with gdb
We can always use python now. Avoids one roundtrip on startup,
a temporary file, and only does it when needed.

Change-Id: Id32a812bec477307da1d93950f7758f3a5699464
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-02-28 12:16:30 +01:00
hjk
762f3e32fd Debugger: Fix metaobject lookuop for older versions of GDB
Symbol.value is not available in 7.4

Change-Id: I86e00cbeef61669ca5950e35a7b0aed86dcb2f87
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-02-28 12:16:14 +01:00
hjk
9e3005ee95 Debugger: Rework gdb Q_OBJECT detection (again)
We need to filter out Q_GADGETS

Change-Id: Id0ec18188e5b40506d69908e7218e3971cbddad9
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-02-27 12:56:15 +01:00
hjk
4ee7bdc562 Debugger: Some cleanup in gdbbridge
Change-Id: Iecea0ee1d66cff3a4dbe2c9605babb2e49d0c93a
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-02-25 17:46:48 +01:00
hjk
7e5d67025c Debugger: Remove some workarounds for older GDB versions
... and the Python magic needed. This also helps to remove
module dependencies that break current QNX setups.

Change-Id: I6554cf0f344b4c3788681389f2c972e49c9851b6
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Cristian Adam <cristian.adam@here.com>
Reviewed-by: Martin Boháček <mbohacek@blackberry.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-02-21 13:33:21 +01:00
hjk
b9834e4092 Debugger: Move special argv display to DumperBase and use for LLDB, too
Change-Id: Ie1913f5a5062d230e02a4f1738ca14bd6cebc55c
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-02-04 17:02:38 +01:00
hjk
b2874f3bb3 Debugger: Make some gdb dumper work for libc++
Better user experience on Mac.

Change-Id: Ice1455685e0e9bbe0d45cde20563929b7370695d
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-01-31 17:11:02 +01:00
hjk
d40ee224d4 Debugger: Handle extraction of data from temporary SBValue
Change-Id: I5d79b59e971933fef8ef94c20333035188d33a57
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-01-30 16:01:43 +01:00
hjk
c55ac5fb6f Debugger: Use more robust way to extract Qt version.
Also bump the fallback guess to Qt 5.3.

Change-Id: I8e9be14a34cdf6c6330de123cbed7243e0df968a
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-01-30 13:08:58 +01:00
hjk
d37e890a1d Debugger: Show name also for QObject subclasses without Q_OBJECT macro
Change-Id: Ifabf3cc68751a06c15fc1a5a05cad5e5a64c8775
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-01-29 13:56:01 +01:00
hjk
3bb1d048cb Debugger: More robust inferior calls on temporary values
Change-Id: Ie93cbf772bbda40d2aa085064cf9ce7fe208e591
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-01-29 10:53:11 +01:00
hjk
51b743a2d1 Debugger: Some dumper robustification
Change-Id: Id0af97ed54dd936a68696e66c3fcf4dcbf2645e8
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-01-25 15:39:37 +01:00
hjk
392123388a Debugger: Some qobject dumper speedup
Slight change in behavior: Only classes with Q_OBJECT
macro are now recognized as QObjects.

Change-Id: If2df6c31ef6d098944e317e27dfcbc21d60f61ee
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-01-24 18:27:00 +01:00
hjk
cc3facd944 Debugger: Enable QObject property display with LLDB
Finally.

Change-Id: I3257ffbb23ca2ea4eec9a97335a95580c9c4482b
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-01-24 17:36:27 +01:00
hjk
2e7479aef0 Debugger: Add data extraction for dumper inferior call results.
Change-Id: I868be727c48cb3aa570f196dadde71706df01596
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-01-24 16:46:51 +01:00
hjk
2b9a00f172 Debugger: Streamline encoding handling
Replace base64 with hex encoding, centralize
conversions, drop dependency on binascii module.

Task-number: QTCREATORBUG-11317

Change-Id: Id3d419d4fe8f75710352f4bc0e6310be849426bd
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-01-23 16:50:08 +01:00
hjk
376f58df34 Debugger: Fix QObject/property dumper
Change-Id: Ied68fd07e077a185223a68cc504fff5a5b9391ac
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-01-20 17:08:53 +01:00
hjk
239dee6e9d Debugger: Add a backend specific Dumper.hasChildWithName
Change-Id: I89432915f2b6eb52e706d344b9e7998e1f96ab1f
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-01-15 18:12:23 +01:00
hjk
4974e24615 Debugger: Move dumper enum constructions to backends
Different quirks on either side...

Change-Id: Ic8d0e66736beb109e9d76da62b73a4d0dd4f38db
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-01-10 20:04:40 +01:00
hjk
8ebb6aa9f6 Debugger: Extend use of Dumper.putPlotData
Make backend-agnostic and use it for QFiniteStack and
std::{array,vector}

Change-Id: I1702d4290ee24c957f77b539591313ac83021003
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-01-08 18:02:29 +01:00
Eike Ziller
236ea9efb9 Merge remote-tracking branch 'origin/3.0'
Conflicts:
	share/qtcreator/debugger/dumper.cpp
	share/qtcreator/debugger/dumper_p.h
	share/qtcreator/debugger/test/main.cpp
	src/plugins/debugger/gdb/classicgdbengine.cpp
	src/plugins/debugger/gdb/pythongdbengine.cpp
	src/plugins/debugger/lldblib/guest/lldbengineguest.cpp
	src/plugins/debugger/lldblib/guest/lldbengineguest.h
	src/plugins/debugger/lldblib/guest/main.cpp
	src/plugins/debugger/lldblib/ipcengineguest.cpp
	src/plugins/debugger/lldblib/ipcengineguest.h
	src/plugins/debugger/lldblib/ipcenginehost.cpp
	src/plugins/debugger/lldblib/ipcenginehost.h
	src/plugins/debugger/lldblib/lldbenginehost.cpp
	src/plugins/debugger/lldblib/lldboptionspage.cpp
	src/plugins/qbsprojectmanager/qbsstep.cpp
	src/plugins/qbsprojectmanager/qbsstep.h
	src/plugins/qmlprofiler/canvas/qdeclarativecanvas.cpp
	src/plugins/qmlprofiler/canvas/qdeclarativecanvas_p.h
	src/plugins/qmlprofiler/canvas/qdeclarativecontext2d.cpp
	src/plugins/qmlprofiler/canvas/qdeclarativecontext2d_p.h
	src/plugins/qmlprofiler/canvas/qmlprofilercanvas.cpp
	src/plugins/qnx/blackberrycheckdevmodestep.cpp
	src/plugins/qtsupport/debugginghelper.cpp

Change-Id: Ie9fd0a885fb6264a6a8a72daee071b75bcbd2e9d
2014-01-08 11:01:06 +01:00
hjk
1a7b8654e5 Debugger: Fix importing plain dumpers with newer gdbs
Change-Id: Id0441ed8bb4ca1a116157e033bd711ece0e2b2ed
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-01-07 16:47:52 +01:00
hjk
56691bcd60 Debugger: Fix display of std::array<some_struct>
Change-Id: Ib2aa41d6a059246e15d1f42831bdec96c235161e
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-01-07 10:37:17 +01:00
hjk
f5544d4c2d Debugger: Fix off-by-one when displaying "plottable" data
Change-Id: I93b3ba02e0d2ebde829ec8120a847429ca712450
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-01-06 13:40:37 +01:00
hjk
c1fc3e5ded Debugger: Also display addresses of base classes
Rarely needed, but cheap to produce and nice-to-have in some cases.

Change-Id: Ib28e34a8085a4e0ed943646321843eea1bf4e138
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2013-12-16 13:03:03 +01:00
Martin Bohacek
d99d262427 Debugger: fix duplicated "," in response to locals + watch query
Change-Id: I509f39a6423a572219d941f10ca429914ee61996
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-12-06 10:37:43 +01:00
Eike Ziller
0e4de8c108 Merge remote-tracking branch 'origin/3.0' 2013-11-29 11:50:41 +01:00
hjk
2e8347a8c8 Debugger: Remove unused gdbbridge.Dumper.nolocals
Change-Id: Ic24cb5ffb8d1a93372c3661a8b7c91f11fe4e9ad
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-11-28 15:49:52 +01:00
hjk
4081317470 Debugger: Fix check for QObject-ness.
Change-Id: Idd33e104e6e80f9b1f87af9409db810c2c37a4a2
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-11-28 11:45:19 +01:00
Ulf Hermann
a8b215dcf1 Debugger: Correctly identify derived classes from references
Previously the correctly gdb-identified dynamic types were overwritten
with the value's static type. This is probably because the dynamic type
doesn't include the "&" for "reference". That, however, can easily be
fixed by just appending "&". As we're only handling references there it
should be safe to do so.

Task-number: QTCREATORBUG-10888
Change-Id: I7310916ce662956e66491423ad26658c32c8776b
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-11-27 13:41:44 +01:00
Eike Ziller
559e66cb35 Merge remote-tracking branch 'origin/3.0' 2013-11-22 09:11:51 +01:00
hjk
1e9adb22b0 Debugger: Fix editing of std::{string,vector} values
Change-Id: I3ff3f032af9ca54f2c48fe6e611fee73691e5ea2
Reviewed-by: Ulf Hermann <ulf.hermann@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-11-21 17:04:55 +01:00
hjk
551b3ed368 Debugger: Disable theadname extraction (again)
This only affects MinGW where the feature triggered QTCREATORBUG-5200 in
the past. Right now the performance impact of c9c0f80 (fixing
QTCREATORBUG-10826) is unclear and no time to investigate. Trading the
feature for robustness seems in order. Power-users can remove the return
line in the script to get it back.

Change-Id: If5a30808b72969493e5f40dd0fcbafdcccec343e
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2013-11-20 12:32:11 +01:00
Eike Ziller
f61e643c95 Merge remote-tracking branch 'origin/3.0' 2013-11-20 11:25:36 +01:00
hjk
c9c0f80147 Debugger: Fix threadname display
We probably should completely skip the code in the cases where Qt
itself already propagates the object name to the underlying threads.

Task-number: QTCREATORBUG-10826
Change-Id: I7e9e5b7c990a270c8563e40c1fe1e900724c1e5c
Reviewed-by: Ryan May <ryan.may@eecradar.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-11-19 18:02:40 +01:00
Eike Ziller
8fe04ce0ad Merge remote-tracking branch 'origin/3.0' 2013-11-19 07:41:47 +01:00
hjk
7f6c793f75 Debugger: Fix passing of maximum string length
Change-Id: I96498b93bb1632de8ca960ae24ec54e31f8c0897
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-11-17 18:28:51 +01:00
Eike Ziller
4538ccb46c Merge remote-tracking branch 'origin/3.0'
Conflicts:
	share/qtcreator/debugger/gdbbridge.py

Change-Id: I32d8158c475f927b50ef06fde9ab8189ebdbcbbc
2013-11-15 10:26:57 +01:00
Martin Bohacek
c4648e9797 Debugger: Python dumper support for QNX targets on arm/x86.
gdbbridge.py + dumper.py:
    added detection on QNX target and ARM arch
    added detection of Qt 3 support
    fixed detection of Qt version

qttypes.py:
    fixes of different memory alignment

stdtypes.py:
    support of different libstdc++ internal structures on QNX

Change-Id: I808ee048c66c73c38bf5a8403e9cf881e767442e
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-11-11 10:53:07 +01:00
hjk
5be208bc03 Debugger: Move more common GDB and LLDB dumper code to base
Change-Id: I798396014256afc3845ccdae6e740bbf6059bbf3
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-11-07 14:46:10 +01:00
hjk
cc80da536d Debugger: Move basic C-style array handling to dumper base class
Just cosmetics. Function was oddly named, in an odd place.

Change-Id: I8bfb33f7f41f01309f4b2be8a802d4093ae25e41
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-11-07 14:46:01 +01:00
hjk
a9db8d9318 Debugger: Consolidate pointer display
Pretty much the same code for GDB and LLDB, no reason to duplicate.

Change-Id: I4df4ba55e3b6bdfb6422179050f9a31bd1ebe082
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-11-07 11:11:58 +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
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
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