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

@@ -64,15 +64,14 @@ public:
virtual bool startDebugger(const QSharedPointer<DebuggerStartParameters> &startParameters);
virtual void exitDebugger();
virtual void detachDebugger();
virtual void updateWatchData(const WatchData &data);
virtual void stepExec();
virtual void stepOutExec();
virtual void nextExec();
virtual void stepIExec();
virtual void nextIExec();
virtual void continueInferior();
virtual void continueInferior();
virtual void interruptInferior();
virtual void runToLineExec(const QString &fileName, int lineNumber);
@@ -97,6 +96,11 @@ public:
virtual void reloadSourceFiles();
virtual void reloadFullStack() {}
WatchModel *watchModel(int type) const;
bool isDebuggeeHalted() const;
bool evaluateExpression(const QString &expression, QString *value, QString *type, QString *errorMessage);
public slots:
void syncDebuggerPaths();
@@ -106,8 +110,9 @@ protected:
private slots:
void slotConsoleStubStarted();
void slotConsoleStubError(const QString &msg);
void slotConsoleStubTerminated();
void slotConsoleStubTerminated();
void warning(const QString &w);
void insertWatcher(const WatchData &);
private:
bool startAttachDebugger(qint64 pid, DebuggerStartMode sm, QString *errorMessage);
@@ -116,8 +121,7 @@ private:
void killWatchTimer();
void processTerminated(unsigned long exitCode);
bool executeDebuggerCommand(const QString &command, QString *errorMessage);
bool evaluateExpression(const QString &expression, QString *value, QString *type, QString *errorMessage);
void evaluateWatcher(WatchData *wd);
QString editorToolTip(const QString &exp, const QString &function);
CdbDebugEnginePrivate *m_d;