Commit Graph

933 Commits

Author SHA1 Message Date
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
hjk
ee3d6eba05 Debugger: Call putNumChild from putItemCount
Reduces user side code

Change-Id: I4e6186e4af2b62983e1d14796c88654649fcda21
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-05-06 17:25:32 +02:00
hjk
d2ad6aa972 Debugger: Simplify array dumper user code
Heads up: This switches the argument order to allow a default
argument for the inner type if it can be determined from the
base pointer.

Change-Id: I9bf80fcdd51b5db8e7c65adba551ca667912cd86
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-05-06 13:50:25 +02:00
hjk
3f0d02ad7f Debugger: Rework display type selection
The previous index based way was getting too brittle, use enums instead.
Also add a switch between exponential and flat display for floating
point types.

Task-number: QTCREATORBUG-12050
Change-Id: I86addbac5a80e8b79b176c6107b251b466503fe7
Reviewed-by: David Schulz <david.schulz@digia.com>
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-04-29 09:18:00 +02:00
hjk
a0b60bef07 Debugger: Fix variable name in dumper
Change-Id: If32960e22c48ff90b77f06243e7a9c19408d0c34
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-04-16 09:45:42 +02:00
Eike Ziller
8c1c106a4f Merge remote-tracking branch 'origin/3.1' 2014-04-14 16:53:23 +02:00
hjk
e7eb227157 Debugger: Fix Eigen::Matrix dumper with LLDB
Access by address. Big hammer, but LLDB doesn't cope
well with templates...

Change-Id: I430a83c282bc8a46efa011efb73f32cdbf46398c
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-04-11 17:04:12 +02:00
hjk
e6292d3681 Debugger: Better connection count display
Not a full fix yet. Disconnect does not reduce the count
since the Connection object remains in the structure,
only the receiver gets set to 0.

The connections are now listed as subitem of [signals]

Change-Id: I3dd795b3731b30e2af6f4d0e5da71dbde8996649
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-04-11 16:50:17 +02:00
hjk
41582b1911 Debugger: Work around mis-reading of integral template types
Clang/LLDB toolchain issue: -1 gets recorded and read
as 'int' with value '0xffffffff'.

Change-Id: I070a83c282bc8a46efa011efb73f32cdbf46398c
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-04-11 16:41:03 +02:00
hjk
03c6df1fab Debugger: Fix staticMetaObject extraction with LLDB
When asked for Foo::staticMetaObject, it will find
any *::staticMetaObject. Looking for the mangled name
finds the one we need.

Change-Id: I4508a3c282bc8a46efa011efb73f32cdbf46398c
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-04-11 14:24:35 +02:00
hjk
c7701e8164 Debugger: Use proper item count for signals and methods
Change-Id: I2dd795b3731b30e2af6f4d0e5da71dbde8996649
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-04-10 13:38:12 +02:00
hjk
4b4181a9cd Debugger: Handling eigen3 in manual test
Change-Id: Id3e6eddffe8d0edd7d5947c2eec03d707bd2436b
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-04-10 12:19:24 +02:00
hjk
13a4f739ef Debugger: List QObject methods and signals in dumper
This mostly re-activates code from the old code path
in the QObject dumper.

Task-number: QTCREATORBUG-11997

Change-Id: Ie3e6eddffe8d0edd7d5947c2eec03d707bd2436b
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-04-10 10:55:15 +02:00
hjk
7dce490546 Debugger: Fix internal type dumper
Change-Id: I5c9ad7c5f95980bb85e07f1ea6dddcdf8b8a19a2
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-04-09 17:32:25 +02:00
hjk
05f72338f3 Debugger: Handle the <more> item in LLDB stack view
Task-number: QTCREATORBUG-11915
Change-Id: I7216987c68802c9d3b74fbd5b543ea4aa5953ff8
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-04-09 16:57:32 +02:00
hjk
057e5d9150 Debugger: Show item count with Qt4's QMap
Contents is still wrong for Clang builds as the
debug information recorded for the node types
is insufficient.

Change-Id: I4c694e5010ade7f3ebbb4a94163d7b44da13c10d
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-04-08 18:04:08 +02:00
Eike Ziller
b687658663 Merge remote-tracking branch 'origin/3.1'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/plugins/cpptools/cppcompletion_test.cpp

Change-Id: Ic5e75b3ef164de664a1449ffa8579beaf5b02521
2014-04-08 11:18:40 +02:00
hjk
ef4388d43b Debugger: Fix pointer arithmetic in lldbbridge.py
Cut-and-past-o in a currently unused code path.

Change-Id: I2c690e5010ade7f3ebbb4a94163d7b44da13c10d
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-04-07 12:28:22 +02:00
hjk
26d5059961 Debugger: More robust Qt version extraction with LLDB
Change-Id: I1c690e5010ade7f3ebbb4a94163d7b44da13c10d
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-04-04 16:14:01 +02:00
hjk
d8adc10fbe Debugger: More direct way to extract dynamic QObject properties
This avoids the address == -1 problem for generated
values with LLDB.

Change-Id: I13cfc7387d8e5329b588d6d841cd9c2322270363
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-04-04 11:00:00 +02:00
hjk
78d2e274b7 Debugger: Robustify QSet and QHash dumpers
Change-Id: I6d4df7f00719e5f7c4ee2f41c890348ab9aeaa8a
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-04-03 13:41:30 +02:00
hjk
b5f4678846 Debugger: Handle failing inferior calls more gracefully
At least for GDB on Windows that's a rather typical situation due to
GDB's "Internal error: pc in read in psymtab, but not in symtab"

Task-number: QTCREATORBUG-11164

Change-Id: If79d586b59e2c1ee37558e8a811091fefc69ac2d
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-04-03 13:41:21 +02:00
Christian Stenger
eabf4628c9 Debugger: Use tested offsets in QFile dumper
Change-Id: I6c45d9ebcfa7705ba0913cd1c3ff30798758c473
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-04-03 12:13:08 +02:00
Eike Ziller
cab8e4aa03 Merge remote-tracking branch 'origin/3.1'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/plugins/qtsupport/qtversionmanager.cpp
	src/shared/qbs

Change-Id: If7a93fb018799fe6ada76e79c24ab5b43dfa6fc2
2014-04-02 13:24:34 +02:00