Enabled the use of Debugger-specific watch/locals models.

- 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>
This commit is contained in:
Friedemann Kleint
2009-07-10 14:36:28 +02:00
parent b0227ce496
commit abf5e3ddc3
29 changed files with 1798 additions and 697 deletions

View File

@@ -39,6 +39,7 @@
#include <utils/consoleprocess.h>
#include <QtCore/QSharedPointer>
#include <QtCore/QPointer>
#include <QtCore/QMap>
namespace Debugger {
@@ -49,6 +50,8 @@ class IDebuggerManagerAccessForEngines;
class WatchHandler;
class CdbStackFrameContext;
class CdbStackTraceContext;
class CdbLocalsModel;
class CdbWatchModel;
// Thin wrapper around the 'DBEng' debugger engine shared library
// which is loaded at runtime.
@@ -115,7 +118,7 @@ struct CdbDebugEnginePrivate
bool isDebuggeeRunning() const { return m_watchTimer != -1; }
void handleDebugEvent();
void updateThreadList();
void updateThreadList();
void updateStackTrace();
void updateModules();
@@ -123,7 +126,6 @@ struct CdbDebugEnginePrivate
void cleanStackTrace();
void clearForRun();
void handleModuleLoad(const QString &);
CdbStackFrameContext *getStackFrameContext(int frameIndex, QString *errorMessage) const;
void clearDisplay();
bool interruptInterferiorProcess(QString *errorMessage);
@@ -137,6 +139,8 @@ struct CdbDebugEnginePrivate
enum EndDebuggingMode { EndDebuggingDetach, EndDebuggingTerminate, EndDebuggingAuto };
void endDebugging(EndDebuggingMode em = EndDebuggingAuto);
void saveLocalsViewState();
static bool executeDebuggerCommand(CIDebugControl *ctrl, const QString &command, QString *errorMessage);
static bool evaluateExpression(CIDebugControl *ctrl, const QString &expression, DEBUG_VALUE *v, QString *errorMessage);
@@ -155,7 +159,7 @@ struct CdbDebugEnginePrivate
int m_watchTimer;
CdbComInterfaces m_cif;
CdbDebugEventCallback m_debugEventCallBack;
CdbDebugOutput m_debugOutputCallBack;
CdbDebugOutput m_debugOutputCallBack;
QSharedPointer<CdbDumperHelper> m_dumper;
CdbDebugEngine* m_engine;
@@ -168,6 +172,9 @@ struct CdbDebugEnginePrivate
DebuggerStartMode m_mode;
Core::Utils::ConsoleProcess m_consoleStubProc;
QPointer<CdbLocalsModel> m_localsModel;
QPointer<CdbWatchModel> m_watchModel;
};
// helper functions