Continued CDB breakpoint handling.

Enable temporarily stopping for setting breakpoints. Fix terminating the
debuggee in exitDebugger().
This commit is contained in:
Friedemann Kleint
2009-04-08 16:37:41 +02:00
parent 472e25025f
commit 3d55c45e2c
7 changed files with 312 additions and 141 deletions

View File

@@ -65,6 +65,12 @@ private:
struct CdbDebugEnginePrivate
{
enum HandleBreakEventMode { // Special modes for break event handler.
BreakEventHandle,
BreakEventIgnoreOnce,
BreakEventSyncBreakPoints,
};
explicit CdbDebugEnginePrivate(DebuggerManager *parent, CdbDebugEngine* engine);
bool init(QString *errorMessage);
~CdbDebugEnginePrivate();
@@ -79,12 +85,20 @@ struct CdbDebugEnginePrivate
void handleDebugOutput(const char* szOutputString);
void handleBreakpointEvent(PDEBUG_BREAKPOINT pBP);
void cleanStackTrace();
void clearForRun();
CdbSymbolGroupContext *getStackFrameSymbolGroupContext(int frameIndex, QString *errorMessage) const;
bool interruptInterferiorProcess(QString *errorMessage);
bool continueInferiorProcess(QString *errorMessage);
bool continueInferior(QString *errorMessage);
bool attemptBreakpointSynchronization(QString *errorMessage);
HANDLE m_hDebuggeeProcess;
HANDLE m_hDebuggeeThread;
int m_currentThreadId;
bool m_bIgnoreNextDebugEvent;
HandleBreakEventMode m_breakEventMode;
int m_watchTimer;
IDebugClient5* m_pDebugClient;