enum DebuggerState { none, prompt, loaded, running, stopped, terminated, error };
enum DebuggerEvent
{
- none, hit, breakEvent, signal, stepEnd, functionEnd, exit;
+ none, hit, breakEvent, signal, stepEnd, functionEnd, exit, valgrindStartPause;
property bool canBeMonitored { get { return (this == hit || this == breakEvent || this == signal || this == stepEnd || this == functionEnd); } };
};
case hit:
{
bool isInternal;
- Breakpoint bp = GetBreakpointById(stopItem.bkptno, &isInternal);
+ Breakpoint bp = stopItem ? GetBreakpointById(stopItem.bkptno, &isInternal) : null;
if(bp && bp.inserted && bp.bp.addr)
{
if(bp.type.isInternal)
monitor = true;
ignoreBreakpoints = false;
break;
+ case valgrindStartPause:
+ GdbExecContinue(true);
+ break;
case exit:
HideDebuggerViews();
break;
}
}
}
+ if(usingValgrind && event == none && !stopItem)
+ event = valgrindStartPause;
app.SignalEvent();
}
}