fpdebug: fixed TDbgWinProcess.Continue if aThread invalid return false

git-svn-id: trunk@50885 -
This commit is contained in:
mattias 2015-12-17 22:08:19 +00:00
parent 269420bf8c
commit 03c19a6402
2 changed files with 7 additions and 7 deletions

View File

@ -1245,9 +1245,9 @@ end;
destructor TDbgThread.Destroy; destructor TDbgThread.Destroy;
begin begin
FProcess.ThreadDestroyed(Self); FProcess.ThreadDestroyed(Self);
FRegisterValueList.Free; FreeAndNil(FRegisterValueList);
ClearCallStack; ClearCallStack;
FCallStackEntryList.Free; FreeAndNil(FCallStackEntryList);
inherited; inherited;
end; end;

View File

@ -496,9 +496,10 @@ function TDbgWinProcess.Continue(AProcess: TDbgProcess; AThread: TDbgThread;
begin begin
if assigned(AThread) then if assigned(AThread) then
begin begin
if not FThreadMap.HasId(AThread.ID) then if not FThreadMap.HasId(AThread.ID) then begin
AThread.Free; AThread.Free;
else begin exit(false);
end else begin
AThread.NextIsSingleStep:=SingleStep; AThread.NextIsSingleStep:=SingleStep;
if SingleStep or assigned(FCurrentBreakpoint) then if SingleStep or assigned(FCurrentBreakpoint) then
TDbgWinThread(AThread).SetSingleStep; TDbgWinThread(AThread).SetSingleStep;
@ -511,9 +512,8 @@ begin
EXCEPTION_SINGLE_STEP: begin EXCEPTION_SINGLE_STEP: begin
Windows.ContinueDebugEvent(MDebugEvent.dwProcessId, MDebugEvent.dwThreadId, DBG_CONTINUE); Windows.ContinueDebugEvent(MDebugEvent.dwProcessId, MDebugEvent.dwThreadId, DBG_CONTINUE);
end end
else begin else
Windows.ContinueDebugEvent(MDebugEvent.dwProcessId, MDebugEvent.dwThreadId, DBG_EXCEPTION_NOT_HANDLED); Windows.ContinueDebugEvent(MDebugEvent.dwProcessId, MDebugEvent.dwThreadId, DBG_EXCEPTION_NOT_HANDLED);
end;
end; end;
result := true; result := true;
end; end;