Commit Graph

359 Commits

Author SHA1 Message Date
Friedemann Kleint
f9eea7e1ec Debugger: Fix broken display of containers with truncated item count.
Introduce convention '<>10 items>' meaning <more than 10 items>.

Task-number: QTCREATORBUG-3132
2010-11-18 15:42:01 +01:00
hjk
8ae541b36f debugger: Refactor breakpoint handling.
The breakpoints are now (fairly) tightly guarded by the BreakpointHandler.
Engines and Views are only supposed to refer to them by id. They also have
individual states now. The breakpoint data is split into a "user requested"
"fixed" part in BreakpointData and the engines' acknowledged data in a new
struct BreakpointResponse.

TODO: Move m_state and m_engine members to BreakpointResponse. Fix regressions
in the marker handling.
2010-11-15 12:09:25 +01:00
hjk
89eb27d231 debugger: remove some dead code 2010-11-10 14:36:53 +01:00
hjk
2161e0f6d9 debugger: refactoring of the plugin interface
There's  some 'external' and some 'internal' part now. Other plugins
are only supposed the external interface.
2010-11-10 12:08:23 +01:00
hjk
b373da1b12 debugger: more handler/window refactoring 2010-11-08 13:20:12 +01:00
hjk
91ba3949d5 debugger: remove sessionengine 2010-11-05 13:36:18 +01:00
hjk
4ad493c958 debugger: re-enable functions and cleanup after breakhandler move 2010-11-04 11:28:08 +01:00
hjk
8e62715130 debugger: move logical ownership of breakhandler from engines to plugin 2010-11-04 09:55:05 +01:00
Friedemann Kleint
22f03cbde6 ProjectExplor/Debugger: Header cleanup 2010-11-02 16:14:00 +01:00
hjk
0afb34d5eb debugger: refactor breakpoint type, add function name to resolved jsbreakpoints 2010-10-29 14:31:16 +02:00
Friedemann Kleint
82f80d5403 Debugger[CDB]: Do not evaluate watch expressions at all.
setError() on them instead (should there be any from
a session mixup). Give the session engine watcher
capabilities and ensure 'Remove watch item' is enabled
for the session engine by checking the debugger state.

Reviewed-by: hjk
2010-10-11 12:59:49 +02:00
Friedemann Kleint
edeccf7307 Debugger: Fix dumpers in case alphabetical sorting is off.
No longer change iname to obtain sorting.

Reviewed-by: hjk
2010-10-08 14:57:39 +02:00
Friedemann Kleint
f536079585 Debugger: Streamline watch editing code.
Implement WatchModel::data() to return the right values
for Qt::EditRole, obsoleting the role matching in the delegate.
Similarly, handle Qt::EditRole in setData(), leaving only
'Change watch expression' in the delegate, which removes
and recreates a row, causing crashes when done in setData().
2010-09-24 10:38:17 +02:00
Friedemann Kleint
13c97d652e Debugger: Fixes around watch editing.
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.
2010-09-23 13:22:08 +02:00
hjk
034bb72dc4 debugger: make alphabetic sorting of struct members optional.
Task-number: QTCREATORBUG-1608
2010-09-23 11:17:01 +02:00
hjk
6b665ac991 debugger: make only toplevel watchers editable 2010-09-23 08:24:52 +02:00
Friedemann Kleint
ca808cc7b4 Debugger: Add special widgets for editing watch values.
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.
2010-09-22 17:30:22 +02:00
Friedemann Kleint
b67c1a7889 Debugger: Sanitize Datatypes, part 3: Address of watch items.
Use a quint64 as address. Split apart special handling of
QAbstractItemModels of old shared-library based dumpers
(passing '$'+ special expression as address) into separate
dumperFlags QByteArray.
2010-09-22 11:19:35 +02:00
Friedemann Kleint
3b145f00fe Debugger: Small fixes
CDB: expand pointers correctly
Check for watchpoints at pointed to-addresses correctly.
2010-09-22 09:01:38 +02:00
Friedemann Kleint
332889aec2 Debugger: Sanitize Datatypes, part 1: Breakpoints.
Make address a quint64, linnumber and ignoreCounts int.

Reviewed-by: hjk
2010-09-21 14:26:45 +02:00
hjk
bd2d160a95 debugger: suppress variable tooltips with outdated contents 2010-09-15 19:02:35 +02:00
Friedemann Kleint
66ad76de4f I18n: tr-fixes. 2010-09-13 16:51:43 +02:00
hjk
7457083bab debugger: only update variables that are operated on 2010-09-13 08:32:37 +02:00
hjk
88f3c894e4 debugger: make some of the dumper generated static strings translatable 2010-09-08 17:01:47 +02:00
hjk
1d3606f4b9 debugger: provide a method to copy Locals&Watchers contents into a main editor.
Task-number: QTCREATORBUG-982
2010-09-08 09:10:22 +02:00
hjk
f91ba77cee debugger: more QByteArray/type 2010-09-01 19:14:41 +02:00
hjk
4cbbe366af debugger: make a 'type' a QByteArray, not a QString
Saves lots of conversion.
2010-09-01 17:36:09 +02:00
hjk
56fd90e5cc debugger: fix spelling of synchronous
Finally.
2010-08-30 10:38:38 +02:00
hjk
57cc0df0f6 debugger: don't show format options for 'bool'
http://bugreports.qt.nokia.com/browse/QTCREATORBUG-2126
2010-08-26 17:24:01 +02:00
hjk
5f13608c61 debugger: replace \n by \\n in locals & watchers
http://bugreports.qt.nokia.com/browse/QTCREATORBUG-2144
2010-08-26 13:21:47 +02:00
Kai Koehne
ef1e52dfd1 Merge branch '2.0' of scm.dev.nokia.troll.no:creator/mainline
Conflicts:
	doc/qtcreator.qdoc
	doc/qtcreator.qdocconf
	share/qtcreator/gdbmacros/dumper.py
	share/qtcreator/gdbmacros/gdbmacros.py
	src/plugins/debugger/debuggermanager.cpp
	src/plugins/debugger/gdb/attachgdbadapter.cpp
	src/plugins/debugger/gdb/gdbengine.cpp
	src/plugins/debugger/watchhandler.cpp
	src/plugins/mercurial/mercurialjobrunner.h
	src/plugins/qmljseditor/qmljseditor.cpp
	src/plugins/qmljseditor/qmljseditor.pro
	src/plugins/qmljseditor/qmljseditorplugin.cpp
	src/plugins/qmljseditor/qmljseditorplugin.h
	src/plugins/qmljseditor/qmljspreviewrunner.cpp
	src/plugins/qmljseditor/qmljspreviewrunner.h
	src/plugins/qmlprojectmanager/QmlProjectManager.pluginspec
	src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
	src/plugins/qt4projectmanager/qt-maemo/qemuruntimemanager.cpp
	src/plugins/qt4projectmanager/qt4projectmanager.pro
	src/plugins/qt4projectmanager/qtversionmanager.h
	src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp
	src/plugins/qt4projectmanager/wizards/targetsetuppage.h
2010-08-23 16:00:24 +02:00
hjk
69fb75b627 debugger: fix 2.x regression: allow assignment to structure members 2010-08-18 13:51:49 +02:00
hjk
0e54b6caa1 debugger: fix assigning new values to structure members 2010-08-18 13:44:36 +02:00
hjk
3f36dbd81a debugger: simplify code for inserting new watchitems 2010-07-23 18:20:13 +02:00
hjk
d27ec169d0 debugger: do not insert multiple "<Edit>" placeholders when creating new watch
items
2010-07-22 15:35:06 +02:00
hjk
6493b4853d debugger: adjust loading/saving of watched expressions to recent changes 2010-06-25 10:21:39 +02:00
hjk
eb75f40a98 debugger: allow per item selection of display method in Locals&Watchers 2010-06-25 09:16:55 +02:00
hjk
a25fd01a10 debugger: simplify handling of context menu actions of the Locals&Watchers view 2010-06-23 16:16:32 +02:00
hjk
ed2862acce debugger: remove special mechanism to update watcher and return window 2010-06-23 14:12:14 +02:00
hjk
6a6cba5518 debugger: The DebuggerEngine refactoring.
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).
2010-06-22 10:59:57 +02:00
hjk
4ff2881017 debugger: make watch and register items non-draggable 2010-06-07 10:41:15 +02:00
Friedemann Kleint
9af9c91f93 Debugger/WatchWindow: Add menu options to show pointed to addresses.
Change the WatchWindow handling to be based on quint64 addresses to
ensure proper function. Changed roles and added one role to the
watchmodel to obtain addresses and pointed-to addresses. Add some
fiddling to parse out addresses from debugger values.
Add menu options. Make sure only one watchpoint per address is added.
2010-05-19 17:34:47 +02:00
hjk
5c4b0f8866 debugger: fix resetting type formats in Locals and Watchers 2010-05-19 15:16:30 +02:00
hjk
c50dd85088 debugger: show return value of last function call in Locals and Watchers view
Works only with gdb/Python so far.
2010-05-19 12:00:56 +02:00
hjk
6bb7b6176f debugger: add a cut-down version of the dumpers for python 2010-04-27 15:33:23 +02:00
hjk
9a8ac49c2c debugger: new files for WatchData; move potentially shared code to watchutils.cpp 2010-04-27 15:33:22 +02:00
Robert Loehning
886088a1f3 Fixed debug view of QImage on Windows
Reviewed-by: hjk
2010-04-23 18:04:40 +02:00
Friedemann Kleint
02a9a46216 Debugger[CDB]: Fix watchers.
Task-number: QTCREATORBUG-1139
2010-04-15 11:57:14 +02:00
Friedemann Kleint
b2ddf72035 Debugger[cdb/gdb]: Fix formatting of integers/messages.
- Do not reformat boolean values (true,false) as hex/oct.
- char/unsigned char types (cdb/gdb): Chop off the quoted
  printable character output by the debugger, pass around integer
  only and append the character ourselves in the watchhandler,
  making reformatting as hex/octal work.
- cdb: Check format correctly (fix values output as plain integer).
- cdb: Kill needless warning produced by reformatting output of out-of-scope
  variables.
- cdb: Display exceptions in the status bar as non-intrusive crash notification.

Reviewed-by: hjk
2010-04-09 16:39:36 +02:00
hjk
59af793953 debugger: polish address display. also remove the mostly unused 'stored' address 2010-03-23 14:48:32 +01:00