Determining dynamic type is a best-effort business that
tends to fail in setups without debug information.
Change-Id: Id24fc70ac15cf2957ed1c91d5782b8a7c0677bf2
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Don't use outdated compact display functionality anymore.
This should use 'putPairItem' now, but since there is no way to
check, using non-compact display only is the lesser evil.
Change-Id: I1b1f8029637f79688b9211b977a1e5d1ac90a60f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Instead, push backend differences into a more generic reportResult()
function.
Change-Id: I6bc34580e915b830e592680022b3499ae5eb1e57
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Start displaying QV4::Value again for numeric values
and QJSValue for ints, doubles and strings.
Change-Id: I18ce226c21168087ce280cb05aa0e250bd3187d9
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: hjk <hjk@qt.io>
Lowers the barrier for other debugger backends.
Change-Id: I09e0ad09548b6b4220175245cc0d845ac5aa29d0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: hjk <hjk@qt.io>
It's not the one of the lldb process anymore, so set it explicitly.
Change-Id: Ibcc2b63631c4096f860996ad6ccfc12415d8aefd
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This adds more information to the top-level item
in map and hash entries.
Change-Id: Id43689fd0b968142ff2e9d06c58687a92b5b17c7
Reviewed-by: David Schulz <david.schulz@qt.io>
GDB and LLDB share some ideas but are not identical. Map them
both to what we need in the end. This also reduces the size
of the Type class interface as a step towards more type info
caching.
Change-Id: I43e60c4e5736ac15a5c776832ffb8e6939f45e45
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Easier maintenance if code is typesafe. Whatever that means in Python.
Change-Id: I450e5d42bcfdb30d607dd878353d037ba18fe6d9
Reviewed-by: hjk <hjk@qt.io>
gdb.Type.name is not available there, but str() works.
Change-Id: I61c3018e728e634509d4028f624dc1213c62a290
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
lldb stops the process after attaching and the event loop is not yet started.
This makes the debugger wait for events while process is in stopped state
Task-number: QTCREATORBUG-15705
Change-Id: Iae6fe94fc483d963b377582c4cbbb443be5e6cba
Reviewed-by: hjk <hjk@qt.io>
This introduces a dumper types abstraction layer with classes
Dumper.{Value,Type,Field} wrapping either gdb.{Value,Type,Field}
or lldb.{SBValue,SBType,SBField} and uses it to move
to more direct memory accesses in the dumper implementation.
This way we can use duck typing for artificial intermediate
objects eliminating the need for {gdb.Value,lldb.SBValue}.cast()
in some case which are flaky in general and typically not
available in release builds.
As consequence QRegion and QVariant dumper work without debug
info now.
Change-Id: Iea2411175ef67f2bf651ee7eaade9879ed5ceba1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
... on the minimally needed interface for additional backends to
be used with the dumper infrastructure.
Change-Id: I4afb5b5bb16a0499311e70499a6d58e374fce3b1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Previously if program execution was paused, and a c++ command was
executed via executeDebuggerCommand method, which in turn printed
to stdout, Qt Creator would assume that program execution has
been resumed. But in reality the execution was still paused.
Make sure not to report the program execution as being resumed, in
case if something is printed to stdout as a result of a debugger
command.
Change-Id: I8752be00b1bf5bd4767debc2eb26b9a433f251bb
Reviewed-by: hjk <hjk@qt.io>
... with newer versions of GDB.
Looks like their internal behavior changed (again...)
Task-number: QTCREATORBUG-16758
Change-Id: Ic3a092091bac73df92a3a9f33ab863e4b6ece9b4
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: hjk <hjk@qt.io>
More in line with other places.
Change-Id: I0828b5ce0469f4c71081d45250c72acabb363b1a
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: hjk <hjk@qt.io>
A variable name mixup, potentially leading to endless loops.
Change-Id: I43f430ec89a8230da665fbfcef8d7f1491b0e2c0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Together with [metaObject] and [connectionLists]. This also
saves a few cycles in the main code path.
Change-Id: I8460267f04a0c1d63ab0f991450863669cc760e8
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
While the properties were dumped properly, only the number of
static properties was shown.
Change-Id: I3ccd98478e62d99849f5012121d2ff2bda500319
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This seems to have side-effects on memory contents. Right now it is
unclear what happens exactly, so revert for 4.1rc.
Change-Id: I7b1b8e376ac84b6656b1abdae720d7bead1c0b89
Reviewed-by: Christian Stenger <christian.stenger@qt.io>