Changeset 14 for trunk/Debugger.pas


Ignore:
Timestamp:
Apr 21, 2026, 3:52:53 PM (6 days ago)
Author:
chronos
Message:
  • Modified: Pausing CPU thread execution with event object instead of freeing thread object.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Debugger.pas

    r13 r14  
    6060    DebugStopAddress: Word;
    6161    CallStack: TCallStack;
     62    procedure Reset;
    6263    constructor Create;
    6364    destructor Destroy; override;
     
    102103  if CallStack.Count > 0 then CallStack.Delete(CallStack.Count - 1);
    103104  if DebugMode = dmStepOut then begin
    104     Cpu.Thread.Terminate;
     105    Cpu.Paused := True;
    105106    DebugMode := dmNone;
    106107  end;
     
    113114    if DebugMode = dmStepIn then begin
    114115      DebugMode := dmNone;
    115       Cpu.Thread.Terminate;
     116      Cpu.Paused := True;
    116117    end;
    117118    if (DebugMode = dmStopAddress) and (DebugStopAddress = Cpu.PC) then begin
    118119      DebugMode := dmNone;
    119       Cpu.Thread.Terminate;
     120      Cpu.Paused := True;
    120121    end;
    121122    if DebugMode = dmStepOver then begin
    122123      DebugMode := dmNone;
    123       Cpu.Thread.Terminate;
     124      Cpu.Paused := True;
    124125    end;
    125126  end;
    126127  if BreakPoints.Contains(Cpu.PC) then begin
    127128    DebugMode := dmNone;
    128     Cpu.Thread.Terminate;
     129    Cpu.Paused := True;
    129130  end;
    130131end;
     
    140141  FDisassembler := AValue;
    141142  CallStack.Disassembler := AValue;
     143end;
     144
     145procedure TDebugger.Reset;
     146begin
     147  BreakPoints.Clear;
     148  CallStack.Clear;
    142149end;
    143150
Note: See TracChangeset for help on using the changeset viewer.