// Continue is called from the SDM when it wants execution to continue in the debugee // but have stepping state remain. An example is when a tracepoint is executed, // and the debugger does not want to actually enter break mode. public int Continue(IDebugThread2 pThread) { // VS Code currently isn't providing a thread Id in certain cases. Work around this by handling null values. AD7Thread thread = pThread as AD7Thread; try { if (_pollThread.IsPollThread()) { _debuggedProcess.Continue(thread?.GetDebuggedThread()); } else { _pollThread.RunOperation(() => _debuggedProcess.Continue(thread?.GetDebuggedThread())); } } catch (InvalidCoreDumpOperationException) { return(AD7_HRESULT.E_CRASHDUMP_UNSUPPORTED); } catch (Exception e) { _engineCallback.OnError(EngineUtils.GetExceptionDescription(e)); return(Constants.E_ABORT); } return(Constants.S_OK); }
public int Step(IDebugThread2 pThread, enum_STEPKIND kind, enum_STEPUNIT unit) { AD7Thread thread = (AD7Thread)pThread; try { if (null == thread || null == thread.GetDebuggedThread()) { return(Constants.E_FAIL); } _debuggedProcess.WorkerThread.RunOperation(() => _debuggedProcess.Step(thread.GetDebuggedThread().Id, kind, unit)); } catch (InvalidCoreDumpOperationException) { return(AD7_HRESULT.E_CRASHDUMP_UNSUPPORTED); } catch (Exception e) { _engineCallback.OnError(EngineUtils.GetExceptionDescription(e)); return(Constants.E_ABORT); } return(Constants.S_OK); }
// Continue is called from the SDM when it wants execution to continue in the debugee // but have stepping state remain. An example is when a tracepoint is executed, // and the debugger does not want to actually enter break mode. public int Continue(IDebugThread2 pThread) { // VS Code currently isn't providing a thread Id in certain cases. Work around this by handling null values. AD7Thread thread = pThread as AD7Thread; if (_pollThread.IsPollThread()) { _debuggedProcess.Continue(thread?.GetDebuggedThread()); } else { _pollThread.RunOperation(() => _debuggedProcess.Continue(thread?.GetDebuggedThread())); } return(Constants.S_OK); }
public int Step(IDebugThread2 pThread, enum_STEPKIND kind, enum_STEPUNIT unit) { AD7Thread thread = (AD7Thread)pThread; _debuggedProcess.WorkerThread.RunOperation(() => _debuggedProcess.Step(thread.GetDebuggedThread().Id, kind, unit)); return(Constants.S_OK); }
// ExecuteOnThread is called when the SDM wants execution to continue and have // stepping state cleared. public int ExecuteOnThread(IDebugThread2 pThread) { AD7Thread thread = (AD7Thread)pThread; _pollThread.RunOperation(() => _debuggedProcess.Execute(thread.GetDebuggedThread())); return(Constants.S_OK); }
// Continue is called from the SDM when it wants execution to continue in the debugee // but have stepping state remain. An example is when a tracepoint is executed, // and the debugger does not want to actually enter break mode. public int Continue(IDebugThread2 pThread) { AD7Thread thread = (AD7Thread)pThread; _pollThread.RunOperation(new Operation(delegate { _debuggedProcess.Continue(thread.GetDebuggedThread()); })); return(Constants.S_OK); }
// ExecuteOnThread is called when the SDM wants execution to continue and have // stepping state cleared. public int ExecuteOnThread(IDebugThread2 pThread) { AD7Thread thread = (AD7Thread)pThread; try { _pollThread.RunOperation(() => _debuggedProcess.Execute(thread?.GetDebuggedThread())); } catch (InvalidCoreDumpOperationException) { return(AD7_HRESULT.E_CRASHDUMP_UNSUPPORTED); } return(Constants.S_OK); }
public int Step(IDebugThread2 pThread, enum_STEPKIND kind, enum_STEPUNIT unit) { AD7Thread thread = (AD7Thread)pThread; try { _debuggedProcess.WorkerThread.RunOperation(() => _debuggedProcess.Step(thread.GetDebuggedThread().Id, kind, unit)); } catch (InvalidCoreDumpOperationException) { return(AD7_HRESULT.E_CRASHDUMP_UNSUPPORTED); } return(Constants.S_OK); }