The Visual Studio MI Debug Engine ("MIEngine") provides an open-source Visual Studio Debugger extension that works with MI-enabled debuggers such as gdb and lldb.
This PR modifies the IsAsyncBreakSignal to return a newly created enum AsyncBreakSignal, and renames it to GetAsyncBreakSignal. GetAsyncBreakSignal will now return if it saw a SIGINT, SIGTRAP, or None if its an unknown signal related to async break or no signal was retrieved at all.
This will be used along with a new flag called IsUsingExecInterrupt, which will be set before -exec-interrupt is sent to the debugger.
IsUsingExecInterrupt will be reset when the engine resolves the async-break from the user (see DebuggedProcess.cs changes) or when we are resolving an internal async break (See Debugger.cs DoInternalBreakActions).
https://github.com/microsoft/MIEngine/commit/5f6213cf60fdd271cd7bf6b03b4225a914a10da5 accidently broke async-break for gdb remote scenarios as we send "-exec-interrupt" for async-break instead of sending a 'kill SIGTRAP'.
This PR modifies the
IsAsyncBreakSignal
to return a newly created enumAsyncBreakSignal
, and renames it toGetAsyncBreakSignal
.GetAsyncBreakSignal
will now return if it saw aSIGINT
,SIGTRAP
, orNone
if its an unknown signal related to async break or no signal was retrieved at all.This will be used along with a new flag called
IsUsingExecInterrupt
, which will be set before-exec-interrupt
is sent to the debugger.IsUsingExecInterrupt
will be reset when the engine resolves theasync-break
from the user (see DebuggedProcess.cs changes) or when we are resolving an internal async break (See Debugger.cs DoInternalBreakActions).Resolves: #1382