Inherit value validity from parent; the 'unknown' default
leads to a wrong [inaccessible] display otherwise.
Change-Id: I6ad23b5c3583c3c8fb5cbaa799d7629ff79328ed
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
The previous display as 0, or 0x0...0e (LLDB on Linux) was
less useful.
Change-Id: I820ea5ef427b65633471c7c62e44851fcfd637cd
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Full separation does not seem possible as QTreeView assumes
all items to have equal column count.
Change-Id: Ia260924fe13ea62789923af8484f9838295355b6
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Use register names as handle, not their index in the view.
Store the raw real values, not some stringified version
as primary data. Use subentries to break down bigger
registers into smaller entities. Also remember the
previous value of a register and show it in a tooltip.
Change-Id: I8ae3cc8766a7b211bc7cc827c734e5cf6060825c
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
-1 is not a valid unsigned value.
registerhandler.cpp(354): warning #68: integer conversion resulted in a change of sign
return createIndex(row, col, TopLevelId);
^
Change-Id: I41935255704f19724d6cec16ea470e2f8f8a16a1
Reviewed-by: Kurt Pattyn <pattyn.kurt@gmail.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
In several places, it says '#include "..."' for headers
from different libraries/plugins.
Change-Id: I96cd74fef9b30163adefe3e1720e0847bed9553a
Reviewed-by: hjk <hjk121@nokiamail.com>
QAbstractItemModel::internalId() returns a quintptr in Qt 5. Handle this
in a way compatible with both Qt 4 and Qt 5.
Change-Id: Iacb9ab71e95085f061fac1e3f4e4759ed43ca7ef
Reviewed-by: hjk <qthjk@ovi.com>
Change-Id: Ie49bdf576a6d3543aef6df133b27c8827775c935
Rationale:
a) It is conceptually cleaner to do the changes to the model
in between calls to beginResetModel() and endResetModel,
respectively.
b) The function is deprecated in Qt 5, for exactly that reason.
Reviewed-by: hjk <qthjk@ovi.com>
By source - latin1 is really expected as there is no any check
or usage of QTextCodec::setCodecForCStrings() currently.
QString::fromAscii() might break 'Latin1' input in some cases.
A quote from documentation about QString::fromAscii():
"Note that, despite the name, this function actually uses the
codec defined by QTextCodec::setCodecForCStrings() to convert str
to Unicode. Depending on the codec, it may not accept valid
US-ASCII (ANSI X3.4-1986) input. If no codec has been set, this
function does the same as fromLatin1()."
Change-Id: I49cf047ca674d2ec621b517c635d1927bb2e796f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: hjk <qthjk@ovi.com>
(except gdbmi.cpp, name_demangler.cpp). Remove some unneeded
conversions, change some maps to take QByteArray keys.
Change-Id: I010f1251998a441fe5c8c87901b1e0c277c0391c
Reviewed-by: hjk <qthjk@ovi.com>
Add a separate memory view tool window available
from the context menus of:
Locals view:
If the debugger provides size information, colors the
areas of member variables for inspecting class layouts.
Registers view:
Tracks the area pointed to by a register.
The view has a context menu allowing to open subviews
referenced by the pointer at the location using
the toolchain abi's word with/endianness.
Rubber-stamped-by: hjk
assignValueInDebugger: Pass on WatchData as well, pass
on values as QVariant. Based on that, do more extensive
checks in CDB, preventing assignment of non-PODs.
Locals/Watch editing:
* Disable while running
* Edit pointer values as hex with validation.
CDB: Strip class types off reported pointer values and reformat
the values as short 0x-pointer values, introduce flag to
WatchData::source to do dumper expansion handling.
Windows: recognize int64 as int.
Register handler: Fix accessing uninitialized value.
Create delegate widgets with validation for bool/int/float
types, using a QVariant-type modelData property.
Also fix register editing to be validated for quint64 values
and editing longer values as hex bigints. Anything else is not
editable.
This replaces the (de facto) singleton engines and data handlers by classes
that are instantiated per run. The DebuggerRunControl will now create an
object of (a class derived from) DebuggerEngine that contains all the relevant
"dynamic" data.
DebuggerManager is no more. The "singleton" bits are merged into DebuggerPlugin,
whereas the data bits went to DebuggerEngine.
There is no formal notion of a "current" DebuggerEngine. However, as there's
only one DebuggerEngine at a time that has its data models connected to the
view, there's still some "de facto" notion of a "current" engine. Calling
SomeModel::setData(int role, QVariant data) with custom role is used as the
primary dispatch mechanism from the views to the "current" data models
(and the engine, as all data models know their engine).
This reverts commit e70530c5ad. It
did break builds on older gcc versions (gcc 4.1.2 64 bit Linux,
gcc 4.0.1 on Mac OS X):
parser/qmljsgrammar_p.h: In static member function ???static int
QmlJSGrammar::nt_action(int, int)???:
parser/qmljsgrammar_p.h:188: error: ???QmlJSGrammar::<anonymous enum>???
is/uses anonymous type
parser/qmljsgrammar_p.h:188: error: trying to instantiate
???template<class T> struct QConcatenable???
...