forked from qt-creator/qt-creator
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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user