If PauseRequested is true, then both SIGINT and SIGTRAP should be treated as deBreakpoint.

This commit is contained in:
ccrause 2021-08-06 14:08:10 +02:00
parent 1529b34ca7
commit 5b824b677c

View File

@ -1025,16 +1025,13 @@ begin
else if TDbgAvrThread(AThread).FInternalPauseRequested then
begin
DebugLn(DBG_VERBOSE, ['???Received late SigTrap for thread ', AThread.ID]);
result := deBreakpoint;//deInternalContinue; // left over signal
result := deBreakpoint;
end
else
begin
DebugLn(DBG_VERBOSE, ['Received SigTrap for thread ', AThread.ID,
' PauseRequest=', PauseRequested]);
if PauseRequested then // Hack to work around Pause problem
result := deFinishedStep
else
result := deBreakpoint;
result := deBreakpoint;
if not TDbgAvrThread(AThread).FIsSteppingBreakPoint then
AThread.CheckAndResetInstructionPointerAfterBreakpoint;
@ -1042,9 +1039,14 @@ begin
end;
SIGINT:
begin
ExceptionClass:='SIGINT';
TDbgAvrThread(AThread).FExceptionSignal:=SIGINT;
result := deException;
if PauseRequested then
result := deBreakpoint
else
begin
ExceptionClass:='SIGINT';
TDbgAvrThread(AThread).FExceptionSignal:=SIGINT;
result := deException;
end;
end;
SIGKILL:
begin