...which subclasses DebuggerRunner and does not call
DebuggerPlugin::startDebugger(), which connects the
engine, leading to strange malfunctions. Move functionality
to DebuggerRunner::start() to make it self-contained.
Add object names to engines for easier debugging.
Reviewed-by: hjk
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 replaces most uses of DebuggerStartParameters by DebuggerRunControl
which is a simple RunControl with a DebuggerStartParameters member.
Plan is to move all global state to the run controls, and possibly
introduce specialized ones for core debugging etc.
"Stepping instruction wise" and "display disassembler" mode is now toggled by a
single action. This also allows to re-use F10 and F11 as keyboard shortcut.
Missing: caching of disassembler output, removal of old disassembler view.
- Modified WatchModel to handle storage of an hierarchy
of WatchItems.
- Factored out code for asynchronous population to
AsyncWatchModel and added a mixin for convenient
handling
- Added base class for synchronous models.
- Implement simple, synchronous models for CDB, greatly
simplifying code and finally getting manual
expansion right.
Signed-off-by: hjk <qtc-committer@nokia.com>
Handle the 2nd parameter correctly as a event id
to be used for a handshake. Introduce a special mode
when attaching to crashed processes.
Code cleanup, pass StartParameters along to startDebugger.
Introduced struct DebuggerStartParameters to pass around
start parameters, removing the need for the engines to
access private members of DebuggerManager. Pass it
to DebuggerManager::startNewDebugger() and move
the GUI parts of that function into DebuggerPlugin,
making it possible to create the struct from command line
parameters. Introduce command line parsing with a few more
-enable-xx options. Introduce warning() to debugger panel
in the CDB engine.
On this occasion, clean out a few trailing whitespaces.