Commit Graph

356 Commits

Author SHA1 Message Date
hjk
392b3f65d2 Debugger: Speed up reading of 0 terminated blobs in dumpers
Change-Id: Iebc64c21f4dd6f4876989e57d3a347b96e1bd449
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-10-13 09:22:23 +02:00
hjk
1baca8e797 Debugger: Add dumper for Qt3's (sic!) QString
Change-Id: I24d266587425a5c50ec3dcb548a29877730cbdff
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-10-10 13:25:02 +02:00
hjk
0691bf93b0 Debugger: Remove unused dumper code
Change-Id: Idc2d17e34bf5666c56d6f54b657867f1b0ecf943
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-10-10 11:37:28 +02:00
hjk
86918e9a28 Debugger: Add dumper for CPlusPlus::Symbol
Change-Id: I25404bff6b53e29fa13ee35787fb6c98209a408e
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-25 17:18:29 +02:00
hjk
1af0f77ea9 Debugger: Wiggle LLDB startup
LLDB 320.* from XCode 601 was unhappy. This is an trial-and-error
to get it start up again.

Change-Id: I5dda0eef785d70abbb5798c3884ace89a8426969
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-09-22 18:07:16 +02:00
hjk
68106a7d31 Debugger: Show at least sizes for libc++'s std::map
Change-Id: I91f3ece335ef660e62e93dcbbeff18dc5b0c46f0
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-22 18:00:56 +02:00
hjk
245d4b253d Debugger: Fix warn() calls in LLDB bridge
Change-Id: I7e8a571daae6a81efb52e153c8b19e724aa56c55
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-22 18:00:44 +02:00
hjk
dbab3dc2e9 Debugger: Add a README to help with dumper command line use
Not exactly the intended use, and whence not part of the docs.

Change-Id: I622c3aef637700c895e37f79cc6ffac7b2cd5205
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-18 13:33:57 +02:00
hjk
1ee2759067 Debugger: Fix boost::unordered_set dumper
Change-Id: Ib356baed758437f5b549df060ca3ee62ee61b9fb
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-15 12:12:13 +02:00
hjk
2776536a7e Debugger: Fix QHash display of "compact" keys
Add make std::string usable as "compact" key.

Change-Id: Idbfcf9d299e2dde392025166a20c3d0ab60239a6
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-09-12 15:36:01 +02:00
hjk
aba1d0a1cb Debugger: Use hard string limit for displayed strings
Currently 100000 to balance between usability (~14sec here)
and usability (e.g. size of typical source text files)

Change-Id: I8a54c81b104a87ec03babf85cbda2e6cea7d3f70
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-04 17:19:37 +02:00
hjk
0102455fd0 Debugger: Fix a few Creator related dumpers
Change-Id: I53d857119872200938c352dbceb8a327dee2a7eb
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-01 23:36:44 +02:00
hjk
e3a1240f71 Debugger: Also display row/column in cooked QModelIndex display
Task-number: QTCREATORBUG-12926
Change-Id: I59f7ab45d9bf530d020945af6db608c4e83a66b7
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-08-29 13:22:44 +02:00
hjk
9d1bc2fdd3 Debugger: Add boost::unordered_set dumper
Change-Id: I42c39ccfe979023e2aa8957132a0ef3404f45aa8
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-08-29 00:43:01 +02:00
Christian Stenger
895421897e Dumper: Fix typo and exception handling
Change-Id: I4008d5427da7cedc0f57183a25519a1aef1fcb7a
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-07-24 16:55:12 +02:00
Joerg Bornemann
20b11960b5 Debugger: fix Qt namespace detection for gdb 7.4.1-debian
Change-Id: I379ff3dec051b22ffe313e6543020488550df97e
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-07-23 14:24:58 +02:00
hjk
776da7b5b3 Debugger: Improve associative std container display
Handle multimap and multiset. Use the "[index] key" display that's
also used for Q{Multi,}Map both for consistency and because it's
needed to distiguish otherwise identical keys.

Change-Id: Ib9e369206bce89e5e27d1f6f60ead11ca88e2dcb
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-07-22 10:47:45 +02:00
hjk
b87867e905 Debugger: Make QString expandable
Change-Id: I7cbbe7ce4e82e3e30f54ffd4e731a136fdc15e6b
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-07-14 16:14:17 +02:00
hjk
e8247c82c7 Debugger: Add dumpers for QXmlStreamStringRef and QXmlStreamAttribute
Useful for debugging debugger tooltips.

Change-Id: Ief1f98e0baa132c23d0886aae415a5f3da0294c3
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-07-11 10:22:31 +02:00
hjk
5dd261662b Debugger: Remove direct entering new watchers in the treeview
Instead pop up the "Add new expression dialog". Same amount of activity
needed, but more uniform in UI and code and hopefully less confusion
about the now-gone <Edit> marker.

Change-Id: I228801dc51f6d09ea9991b98399dc9ef04aa96c8
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-07-08 10:49:01 +02:00
hjk
bed82747f4 Debugger: Fix compact display of individual hash nodes
This was not accessible if the hash itself was a typedef.
Also, make sure that unusual key contents don't do any harm
in the protocol by hexencoding it unconditionally.

Change-Id: I83d43768ec72f797a72b2d9c44ca91b1feaf61a7
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-07-08 10:06:59 +02:00
hjk
77c7cac4b6 Debugger: Fix debugger startup on iOS
Task-number: QTCREATORBUG-12580
Change-Id: I8a2a38741719e8cf0b8a098eaa5d76eeb4bb1fb5
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-07-01 12:54:05 +02:00
hjk
b39363e747 Debugger: Remove dumper debugging output
Change-Id: I0dc23dd5d69885f8ddeb933ae644a983406bbb05
Reviewed-by: Jarek Kobus <jaroslaw.kobus@digia.com>
2014-06-30 17:15:38 +02:00
hjk
a253feee77 Debugger: Fix display of wchar_t[]
Task-number: QTCREATORBUG-12492
Change-Id: I5668c0727a36a1529d28b36d0361922f7acb3083
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-06-26 14:31:47 +02:00
hjk
281aa9e0d6 Debugger: Add personaltypes.py as default location for local additions
Change-Id: Ib393258970f04f2e829f959adedfbc588a966a10
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-06-24 09:41:16 +02:00
hjk
9968271d3f Debugger: Streamline gdb.Value field access workarounds
Change-Id: I1b3b81019f6861353e5ada350fadbe3c8734f186
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-06-19 14:14:16 +02:00
Eike Ziller
cbf4de0315 Merge remote-tracking branch 'origin/3.1'
Conflicts:
	tests/auto/debugger/tst_dumpers.cpp

Change-Id: I1bad0c1477d7fd6996c0f8ca82e76ba521bc0dcc
2014-06-18 14:20:58 +02:00
hjk
e3979fe09d Debugger: Make dumper work with GDB 7.7
GDB 7.7 changed behavior e.g. for the names of anonymous fields,
we need to adjust dumpers and some tests.

Change-Id: I25ae32cc56c4ff63b677a04d6ed9c250e0252140
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-06-18 12:17:42 +02:00
hjk
a63ed31b9b Debugger: Fix base class name printing for GDB/CLI
Change-Id: Ib007c9d0035387018acd608d67d4a9632c17ab8b
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-06-17 09:04:41 +02:00
hjk
e483ae53ec Debugger: Better putAddressRange fallback
Change-Id: I401d7c184465c117cf4506f55fc911766d41052e
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-06-17 08:56:24 +02:00
hjk
b51ec79f7c Debugger: Remove some debugging output
Change-Id: I4df8bd423bfce6b3005c5821ea71358a8ac260ea
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-06-17 07:42:21 +02:00
hjk
fffbf9472a Debugger: Make dumpers somewhat work in command line GDB
With

    python sys.path.insert(1, '/data/dev/creator/share/qtcreator/debugger/')
    python from gdbbridge import *

in .gdbinit there's a new "GDB command", called "pp".

With code like

    int main(int argc, char *argv[])
    {
        QString ss = "Hello";
        QApplication app(argc, argv);
        app.setObjectName(ss);
        // break here
    }

the 'pp' command can be used as follows:

(gdb) pp app
app =
   [
      <Myns::QGuiApplication> = {"Hello"}
      staticMetaObject = <Myns::QMetaObject> = {""}
      [parent] = <Myns::QObject *> = {"0x0"}
      [children] = <Myns::QObjectList> = {"<3 items>"}
      [properties] = "<>0 items>"
      [methods] = "<6 items>"
      [signals] = "<1 items>"
   ],<Myns::QApplication> = {"Hello"}

(gdb) pp app [properties],[children]
app =
   [
      <Myns::QGuiApplication> = {"Hello"}
      staticMetaObject = <Myns::QMetaObject> = {""}
      [parent] = <Myns::QObject *> = {"0x0"}
      [children] = [
         <Myns::QObject> = {""}
         <Myns::QObject> = {""}
         <Myns::QObject> = {"fusion"}
      ],<Myns::QObjectList> = {"<3 items>"}
      [properties] = [
         windowIcon = <Myns::QVariant (QIcon)> = {""}
         cursorFlashTime = <Myns::QVariant (int)> = {"1000"}
         doubleClickInterval = <Myns::QVariant (int)> = {"400"}
         keyboardInputInterval = <Myns::QVariant (int)> = {"400"}
         wheelScrollLines = <Myns::QVariant (int)> = {"3"}
         globalStrut = <Myns::QVariant (QSize)> = {"(0, 0)"}
         startDragTime = <Myns::QVariant (int)> = {"500"}
         startDragDistance = <Myns::QVariant (int)> = {"10"}
         styleSheet = <Myns::QVariant (QString)> = {""}
         autoSipEnabled = <Myns::QVariant (bool)> = {"true"}
      ],"<10 items>"
      [methods] = "<6 items>"
      [signals] = "<1 items>"
   ],<Myns::QApplication> = {"Hello"}

(gdb) pp ss
ss =
   <Myns::QString> = {"Hello"}

Change-Id: I6e4714a5cfe34c38917500d114ad9a70d20cff39
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-06-16 16:28:59 +02:00
hjk
ff2c4a28f2 Debugger: Add dumper for QStringData, QHashedString and QQmlRefCount
Change-Id: I252f532d2f67519ebc1ea45353579408bee91c59
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-06-16 15:01:09 +02:00
hjk
a216d5445f Debugger: Fix operation with python 2.6
Change-Id: Iecfea8f6e1531228fd6cccc424ee4c6c2036098e
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-06-04 14:35:31 +02:00
hjk
d57bb24354 Debugger: Better fall back for LLDB without remote support
Change-Id: I517052bb795674d4beda05e3909dc05afc99bfe3
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-06-03 17:07:03 +02:00
hjk
60f5b5afc5 Debugger: Fail more gracefully on "ill" LLDB engines
Less need to use the hard Debug->Abort

Change-Id: Ib019792063924549ace58a63ccef994dbfaa00dc
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-06-03 17:06:43 +02:00
hjk
be25be4705 Debugger: Better handling of the tabbed extra views
Closing with the [x] now resets the Display mode of the associated
iname, and the view hides if there are no visible tabs left.
Also, remove the long-unused DisplayProcess format.

Change-Id: Ibd3308549af75e345c672c07f6714d26e7196e5a
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-06-03 10:53:01 +02:00
Eike Ziller
37ab6e6d03 Merge remote-tracking branch 'origin/3.1'
Conflicts:
	src/shared/qbs

Change-Id: Ie56c48d3bcd42e1a15832c5e7a10fe69c5410d90
2014-06-02 12:22:03 +02:00
hjk
a9e1eef089 Debugger: Limit QObject name dumper to a more-than reasonable maximum
GDB can crash on to big chunks. Since this here is a convenience
feature only, hard-limiting it to length 200 seems ok as work-around.

Task-number: QTCREATORBUG-12330
Change-Id: Ia6ebf16f3528d91020d19851641f42c1e421fe15
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-05-30 13:34:25 +02:00
hjk
252048ef01 Debugger: Make char * displayable in separate windows
Task-number: QTCREATORBUG-7313
Change-Id: I8d475dd94a48e7a1d5efe4c2c0d90cb6bdf9b3e2
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-05-28 15:07:59 +02:00
Christian Stenger
8c353f998e Dumper: Fix missing parameter
Change-Id: Ia75c9d07967d0013f9a351e99757c0acb661d877
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-05-22 16:34:59 +02:00
hjk
3ae6c09714 Debugger: Regression cleanup
Sneaked in with 40052046fd.

Change-Id: I711c5b8e6869647a447a5f17f693de571b5f0337
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-05-20 13:01:31 +02:00
hjk
40052046fd Debugger: Rework display length limitation systems
There are two values now, one to limit an entry in the L&E view
(default 100) and a hard upper limit (at 1 mio).

If displayed values are elided, the true length is shown in addition.

Change-Id: I180b70446c18e258c164e5af75b88d4c8b6c53f2
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-05-16 17:50:18 +02:00
Eike Ziller
6d1cc58697 Merge remote-tracking branch 'origin/3.1'
Conflicts:
	src/plugins/clangcodemodel/test/clangcompletion_test.cpp
	src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp
	src/plugins/projectexplorer/projectexplorer.pro
	src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp
	src/plugins/vcsbase/vcsplugin.cpp
	src/shared/qbs

Change-Id: I9e5882be79ac5e8c7dfab4a57f16509d7569636a
2014-05-16 16:54:50 +02:00
hjk
1398480f3a Debugger: Limit QByteArray and QString display length
Also add '...' for cut-off std::strings.

Change-Id: Ib6129eb43c723f2a863086a0142312c669b65665
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-05-16 16:35:38 +02:00
hjk
55c19c5042 Debugger: More flexibility for "ranged expressions"
The range boundary and stride can be integral expressions.
Also ( ) are valid delimiters now, making descriptions like
list.at(2.(4).100+2) acceptable.

Change-Id: Ief68c0a1b0b0d3813b2939d60e0806f5cd3ff0b0
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
2014-05-15 10:12:51 +02:00
hjk
6107fdc276 Debugger: Add "composite" watchers
Multiple expressions can be separated by semicolon,
and arrays allow index ranges given as [a..b] or
with strides [a.(s).b].

Change-Id: I0b7b4ee500a5f6f5027d777b0a1e8ee5a28a7cd5
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-05-13 12:58:35 +02:00
hjk
5cb7bd51f4 Debugger: Fix Eigen dumpers, again
This time with autotests.

Task-number: QTCREATORBUG-12193
Change-Id: Id91eecd38eb4ac76c68be8e9969651407a68ebf4
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-05-09 08:51:41 +02:00
hjk
f3c56654d5 Debugger: Add dumper for Debugger::Internal::DisassemblerLine
Change-Id: I416dcb4ce95752773839169aaa76d603cbe91bfe
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-05-07 11:52:24 +02:00
hjk
e260616b2c Debugger: Add dumper for some Qml internal structure
Change-Id: I8e6d48fdaff77228963927e88b95eff136eac92d
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-05-07 11:49:57 +02:00