Debugger: refactor

git-svn-id: trunk@44466 -
This commit is contained in:
martin 2014-03-18 15:49:01 +00:00
parent 9246646d0f
commit 245d81b151
5 changed files with 180 additions and 119 deletions

View File

@ -572,6 +572,7 @@ type
);
TWatchBase = class;
TWatchesMonitor = class;
{ TWatchValueBase }
@ -658,15 +659,17 @@ type
TWatchesSupplier = class(TDebuggerDataSupplier)
private
FCurrentWatches: TWatches;
function GetCurrentWatches: TWatches;
function GetMonitor: TWatchesMonitor;
procedure SetMonitor(AValue: TWatchesMonitor);
protected
procedure DoNewMonitor; override;
procedure DoStateChange(const AOldState: TDBGState); override; // workaround for state changes during TWatchValue.GetValue
procedure InternalRequestData(AWatchValue: TWatchValueBase); virtual;
public
constructor Create(const ADebugger: TDebuggerIntf);
procedure RequestData(AWatchValue: TWatchValueBase);
property CurrentWatches: TWatches read FCurrentWatches write FCurrentWatches;
property CurrentWatches: TWatches read GetCurrentWatches;
property Monitor: TWatchesMonitor read GetMonitor write SetMonitor;
end;
{ TWatchesMonitor }
@ -674,12 +677,15 @@ type
TWatchesMonitor = class(TDebuggerDataMonitor)
private
FWatches: TWatches;
function GetSupplier: TWatchesSupplier;
procedure SetSupplier(AValue: TWatchesSupplier);
protected
function CreateWatches: TWatches; virtual;
public
constructor Create;
destructor Destroy; override;
property Watches: TWatches read FWatches;
property Supplier: TWatchesSupplier read GetSupplier write SetSupplier;
end;
{%endregion ^^^^^ Watches ^^^^^ }
@ -693,6 +699,7 @@ type
******************************************************************************}
// TODO: a more watch-like value object
TLocalsMonitor = class;
{ TLocalsValue }
@ -743,12 +750,14 @@ type
TLocalsSupplier = class(TDebuggerDataSupplier)
private
FCurrentLocalsList: TLocalsList;
function GetCurrentLocalsList: TLocalsList;
function GetMonitor: TLocalsMonitor;
procedure SetMonitor(AValue: TLocalsMonitor);
protected
procedure DoNewMonitor; override;
public
procedure RequestData(ALocals: TLocals); virtual;
property CurrentLocalsList: TLocalsList read FCurrentLocalsList write FCurrentLocalsList;
property CurrentLocalsList: TLocalsList read GetCurrentLocalsList;
property Monitor: TLocalsMonitor read GetMonitor write SetMonitor;
end;
{ TLocalsMonitor }
@ -756,12 +765,15 @@ type
TLocalsMonitor = class(TDebuggerDataMonitor)
private
FLocalsList: TLocalsList;
function GetSupplier: TLocalsSupplier;
procedure SetSupplier(AValue: TLocalsSupplier);
protected
function CreateLocalsList: TLocalsList; virtual;
public
constructor Create;
destructor Destroy; override;
property LocalsList: TLocalsList read FLocalsList;
property Supplier: TLocalsSupplier read GetSupplier write SetSupplier;
end;
{%endregion ^^^^^ Locals ^^^^^ }
@ -822,6 +834,7 @@ type
TRegisterDisplayFormat = (rdDefault, rdHex, rdBinary, rdOctal, rdDecimal, rdRaw);
TRegisterDisplayFormats = set of TRegisterDisplayFormat;
TRegistersMonitor = class;
{ TRegisterDisplayValue }
@ -914,12 +927,14 @@ type
TRegisterSupplier = class(TDebuggerDataSupplier)
private
FCurrentRegistersList: TRegistersList;
function GetCurrentRegistersList: TRegistersList;
function GetMonitor: TRegistersMonitor;
procedure SetMonitor(AValue: TRegistersMonitor);
protected
procedure DoNewMonitor; override;
public
procedure RequestData(ARegisters: TRegisters); virtual;
property CurrentRegistersList: TRegistersList read FCurrentRegistersList write FCurrentRegistersList;
property CurrentRegistersList: TRegistersList read GetCurrentRegistersList;
property Monitor: TRegistersMonitor read GetMonitor write SetMonitor;
end;
{ TRegistersMonitor }
@ -927,12 +942,15 @@ type
TRegistersMonitor = class(TDebuggerDataMonitor)
private
FRegistersList: TRegistersList;
function GetSupplier: TRegisterSupplier;
procedure SetSupplier(AValue: TRegisterSupplier);
protected
function CreateRegistersList: TRegistersList; virtual;
public
constructor Create;
destructor Destroy; override;
property RegistersList: TRegistersList read FRegistersList;
property Supplier: TRegisterSupplier read GetSupplier write SetSupplier;
end;
{%endregion ^^^^^ Register ^^^^^ }
@ -950,7 +968,7 @@ type
* TCallStackEntry needs to stay a readonly object so its data can be shared *
******************************************************************************}
{ TCallStackEntry }
TCallStackMonitor = class;
{ TCallStackEntryBase }
@ -1052,9 +1070,10 @@ type
TCallStackSupplier = class(TDebuggerDataSupplier)
private
FCurrentCallStackList: TCallStackList;
function GetCurrentCallStackList: TCallStackList;
function GetMonitor: TCallStackMonitor;
procedure SetMonitor(AValue: TCallStackMonitor);
protected
procedure DoNewMonitor; override;
//procedure CurrentChanged;
procedure Changed;
public
@ -1063,7 +1082,8 @@ type
procedure RequestCurrent(ACallstack: TCallStackBase); virtual;
procedure RequestEntries(ACallstack: TCallStackBase); virtual;
procedure UpdateCurrentIndex; virtual;
property CurrentCallStackList: TCallStackList read FCurrentCallStackList write FCurrentCallStackList;
property CurrentCallStackList: TCallStackList read GetCurrentCallStackList;
property Monitor: TCallStackMonitor read GetMonitor write SetMonitor;
end;
{ TCallStackMonitor }
@ -1071,12 +1091,15 @@ type
TCallStackMonitor = class(TDebuggerDataMonitor)
private
FCallStackList: TCallStackList;
function GetSupplier: TCallStackSupplier;
procedure SetSupplier(AValue: TCallStackSupplier);
protected
function CreateCallStackList: TCallStackList; virtual;
public
constructor Create;
destructor Destroy; override;
property CallStackList: TCallStackList read FCallStackList;
property Supplier: TCallStackSupplier read GetSupplier write SetSupplier;
end;
{%endregion ^^^^^ Callstack ^^^^^ }
@ -1252,6 +1275,8 @@ type
******************************************************************************
******************************************************************************}
TThreadsMonitor = class;
{ TThreadsBase }
TThreads = class(TObject)
@ -1282,9 +1307,10 @@ type
TThreadsSupplier = class(TDebuggerDataSupplier)
private
FCurrentThreads: TThreads;
function GetCurrentThreads: TThreads;
function GetMonitor: TThreadsMonitor;
procedure SetMonitor(AValue: TThreadsMonitor);
protected
procedure DoNewMonitor; override;
procedure DoStateChange(const AOldState: TDBGState); override;
procedure DoStateLeavePauseClean; override;
procedure DoCleanAfterPause; virtual;
@ -1292,7 +1318,8 @@ type
procedure RequestMasterData; virtual;
procedure ChangeCurrentThread({%H-}ANewId: Integer); virtual;
procedure Changed; // TODO: needed because entries can not notify the monitor
property CurrentThreads: TThreads read FCurrentThreads write FCurrentThreads;
property CurrentThreads: TThreads read GetCurrentThreads;
property Monitor: TThreadsMonitor read GetMonitor write SetMonitor;
end;
{ TThreadsMonitor }
@ -1300,12 +1327,15 @@ type
TThreadsMonitor = class(TDebuggerDataMonitor)
private
FThreads: TThreads;
function GetSupplier: TThreadsSupplier;
procedure SetSupplier(AValue: TThreadsSupplier);
protected
function CreateThreads: TThreads; virtual;
public
constructor Create;
destructor Destroy; override;
property Threads: TThreads read FThreads;
property Supplier: TThreadsSupplier read GetSupplier write SetSupplier;
end;
{%endregion ^^^^^ Threads ^^^^^ }
@ -1850,6 +1880,16 @@ end;
{ TThreadsMonitor }
function TThreadsMonitor.GetSupplier: TThreadsSupplier;
begin
Result := TThreadsSupplier(inherited Supplier);
end;
procedure TThreadsMonitor.SetSupplier(AValue: TThreadsSupplier);
begin
inherited Supplier := AValue;
end;
function TThreadsMonitor.CreateThreads: TThreads;
begin
Result := TThreads.Create;
@ -1869,6 +1909,16 @@ end;
{ TRegistersMonitor }
function TRegistersMonitor.GetSupplier: TRegisterSupplier;
begin
Result := TRegisterSupplier(inherited Supplier);
end;
procedure TRegistersMonitor.SetSupplier(AValue: TRegisterSupplier);
begin
inherited Supplier := AValue;
end;
function TRegistersMonitor.CreateRegistersList: TRegistersList;
begin
Result := TRegistersList.Create;
@ -2029,10 +2079,21 @@ end;
{ TRegisterSupplier }
procedure TRegisterSupplier.DoNewMonitor;
function TRegisterSupplier.GetCurrentRegistersList: TRegistersList;
begin
inherited DoNewMonitor;
FCurrentRegistersList := nil;
Result := nil;
if Monitor <> nil then
Result := Monitor.RegistersList;
end;
function TRegisterSupplier.GetMonitor: TRegistersMonitor;
begin
Result := TRegistersMonitor(inherited Monitor);
end;
procedure TRegisterSupplier.SetMonitor(AValue: TRegistersMonitor);
begin
inherited Monitor := AValue;
end;
procedure TRegisterSupplier.RequestData(ARegisters: TRegisters);
@ -3157,10 +3218,21 @@ begin
else AWatchValue.SetValidity(ddsInvalid);
end;
procedure TWatchesSupplier.DoNewMonitor;
function TWatchesSupplier.GetCurrentWatches: TWatches;
begin
inherited DoNewMonitor;
FCurrentWatches := nil;
Result := Nil;
if Monitor <> nil then
Result := Monitor.Watches;
end;
function TWatchesSupplier.GetMonitor: TWatchesMonitor;
begin
Result := TWatchesMonitor(inherited Monitor);
end;
procedure TWatchesSupplier.SetMonitor(AValue: TWatchesMonitor);
begin
inherited Monitor := AValue;
end;
procedure TWatchesSupplier.DoStateChange(const AOldState: TDBGState);
@ -3184,6 +3256,16 @@ end;
{ TWatchesMonitor }
function TWatchesMonitor.GetSupplier: TWatchesSupplier;
begin
Result := TWatchesSupplier(inherited Supplier);
end;
procedure TWatchesMonitor.SetSupplier(AValue: TWatchesSupplier);
begin
inherited Supplier := AValue;
end;
function TWatchesMonitor.CreateWatches: TWatches;
begin
Result := TWatches.Create;
@ -3203,10 +3285,21 @@ end;
{ TLocalsSupplier }
procedure TLocalsSupplier.DoNewMonitor;
function TLocalsSupplier.GetCurrentLocalsList: TLocalsList;
begin
inherited DoNewMonitor;
FCurrentLocalsList := nil;
Result := nil;
if Monitor <> nil then
Result := Monitor.LocalsList;
end;
function TLocalsSupplier.GetMonitor: TLocalsMonitor;
begin
Result := TLocalsMonitor(inherited Monitor);
end;
procedure TLocalsSupplier.SetMonitor(AValue: TLocalsMonitor);
begin
inherited Monitor := AValue;
end;
procedure TLocalsSupplier.RequestData(ALocals: TLocals);
@ -3216,6 +3309,16 @@ end;
{ TLocalsMonitor }
function TLocalsMonitor.GetSupplier: TLocalsSupplier;
begin
Result := TLocalsSupplier(inherited Supplier);
end;
procedure TLocalsMonitor.SetSupplier(AValue: TLocalsSupplier);
begin
inherited Supplier := AValue;
end;
function TLocalsMonitor.CreateLocalsList: TLocalsList;
begin
Result := TLocalsList.Create;
@ -3317,10 +3420,21 @@ begin
Monitor.DoModified;
end;
procedure TCallStackSupplier.DoNewMonitor;
function TCallStackSupplier.GetCurrentCallStackList: TCallStackList;
begin
inherited DoNewMonitor;
FCurrentCallStackList := nil;
Result := nil;
if Monitor <> nil then
Result := Monitor.CallStackList;
end;
function TCallStackSupplier.GetMonitor: TCallStackMonitor;
begin
Result := TCallStackMonitor(inherited Monitor);
end;
procedure TCallStackSupplier.SetMonitor(AValue: TCallStackMonitor);
begin
inherited Monitor := AValue;
end;
procedure TCallStackSupplier.RequestCount(ACallstack: TCallStackBase);
@ -3377,6 +3491,16 @@ end;
{ TCallStackMonitor }
function TCallStackMonitor.GetSupplier: TCallStackSupplier;
begin
Result := TCallStackSupplier(inherited Supplier);
end;
procedure TCallStackMonitor.SetSupplier(AValue: TCallStackSupplier);
begin
inherited Supplier := AValue;
end;
function TCallStackMonitor.CreateCallStackList: TCallStackList;
begin
Result := TCallStackList.Create;
@ -3402,9 +3526,21 @@ begin
then Monitor.DoModified;
end;
procedure TThreadsSupplier.DoNewMonitor;
function TThreadsSupplier.GetCurrentThreads: TThreads;
begin
FCurrentThreads := nil;
Result := nil;
if Monitor <> nil then
Result := Monitor.Threads;
end;
function TThreadsSupplier.GetMonitor: TThreadsMonitor;
begin
Result := TThreadsMonitor(inherited Monitor);
end;
procedure TThreadsSupplier.SetMonitor(AValue: TThreadsMonitor);
begin
inherited Monitor := AValue;
end;
procedure TThreadsSupplier.ChangeCurrentThread(ANewId: Integer);
@ -3431,8 +3567,8 @@ end;
procedure TThreadsSupplier.DoCleanAfterPause;
begin
if FCurrentThreads <> nil then
FCurrentThreads.Clear;
if CurrentThreads <> nil then
CurrentThreads.Clear;
if Monitor <> nil then
Monitor.DoModified;
end;

View File

@ -790,13 +790,10 @@ type
FNotificationList: TWatchesNotificationList;
function GetCurrentWatches: TCurrentWatches;
function GetSnapshot(AnID: Pointer): TIdeWatches;
function GetSupplier: TWatchesSupplier;
procedure SetSupplier(const AValue: TWatchesSupplier);
protected
procedure DoStateEnterPause; override;
procedure DoStateLeavePause; override;
procedure DoStateLeavePauseClean; override;
procedure DoNewSupplier; override;
procedure DoModified; override;
//procedure NotifyChange
procedure NotifyAdd(const AWatches: TCurrentWatches; const AWatch: TCurrentWatch);
@ -814,7 +811,6 @@ type
procedure RemoveSnapshot(AnID: Pointer);
property CurrentWatches: TCurrentWatches read GetCurrentWatches;// FCurrentWatches;
property Snapshots[AnID: Pointer]: TIdeWatches read GetSnapshot;
property Supplier: TWatchesSupplier read GetSupplier write SetSupplier;
public
procedure Clear;
procedure LoadFromXMLConfig(const AConfig: TXMLConfig; const APath: string);
@ -916,8 +912,6 @@ type
FNotificationList: TDebuggerChangeNotificationList;
function GetCurrentLocalsList: TCurrentLocalsList;
function GetSnapshot(AnID: Pointer): TIDELocalsList;
function GetSupplier: TLocalsSupplier;
procedure SetSupplier(const AValue: TLocalsSupplier);
protected
procedure DoStateEnterPause; override;
procedure DoStateLeavePause; override;
@ -937,7 +931,6 @@ type
procedure RemoveSnapshot(AnID: Pointer);
property CurrentLocalsList: TCurrentLocalsList read GetCurrentLocalsList;
property Snapshots[AnID: Pointer]: TIDELocalsList read GetSnapshot;
property Supplier: TLocalsSupplier read GetSupplier write SetSupplier;
end;
{%endregion ^^^^^ Locals ^^^^^ }
@ -1062,8 +1055,6 @@ type
FNotificationList: TDebuggerChangeNotificationList;
FFlags: set of (rmNeedNotifyChange);
function GetCurrentRegistersList: TCurrentIDERegistersList;
function GetSupplier: TRegisterSupplier;
procedure SetSupplier(const AValue: TRegisterSupplier);
protected
procedure DoStateEnterPause; override;
//procedure DoStateLeavePause; override;
@ -1082,7 +1073,6 @@ type
procedure RemoveNotification(const ANotification: TRegistersNotification);
property CurrentRegistersList: TCurrentIDERegistersList read GetCurrentRegistersList;
//property Snapshots[AnID: Pointer]: TIDERegistersList read GetSnapshot;
property Supplier: TRegisterSupplier read GetSupplier write SetSupplier;
end;
{%endregion ^^^^^ Register ^^^^^ }
@ -1331,8 +1321,6 @@ type
procedure CallStackClear(Sender: TObject);
function GetCurrentCallStackList: TCurrentCallStackList;
function GetSnapshot(AnID: Pointer): TIdeCallStackList;
function GetSupplier: TCallStackSupplier;
procedure SetSupplier(const AValue: TCallStackSupplier);
protected
procedure DoStateEnterPause; override;
procedure DoStateLeavePause; override;
@ -1357,7 +1345,6 @@ type
procedure NotifyCurrent;
property CurrentCallStackList: TCurrentCallStackList read GetCurrentCallStackList;
property Snapshots[AnID: Pointer]: TIdeCallStackList read GetSnapshot;
property Supplier: TCallStackSupplier read GetSupplier write SetSupplier;
property UnitInfoProvider: TDebuggerUnitInfoProvider // Provided by DebugBoss, to map files to packages or project
read FUnitInfoProvider write FUnitInfoProvider;
end;
@ -1532,8 +1519,6 @@ type
FNotificationList: TDebuggerChangeNotificationList;
function GetCurrentThreads: TCurrentThreads;
function GetSnapshot(AnID: Pointer): TIdeThreads;
function GetSupplier: TThreadsSupplier;
procedure SetSupplier(const AValue: TThreadsSupplier);
protected
procedure DoModified; override;
procedure DoStateEnterPause; override;
@ -1556,7 +1541,6 @@ type
procedure CurrentChanged;
property CurrentThreads: TCurrentThreads read GetCurrentThreads;
property Snapshots[AnID: Pointer]: TIdeThreads read GetSnapshot;
property Supplier: TThreadsSupplier read GetSupplier write SetSupplier;
property UnitInfoProvider: TDebuggerUnitInfoProvider // Provided by DebugBoss, to map files to packages or project
read FUnitInfoProvider write FUnitInfoProvider;
end;
@ -3176,11 +3160,6 @@ end;
{ TIdeLocalsMonitor }
function TIdeLocalsMonitor.GetSupplier: TLocalsSupplier;
begin
Result := TLocalsSupplier(inherited Supplier);
end;
function TIdeLocalsMonitor.GetSnapshot(AnID: Pointer): TIDELocalsList;
begin
Result := TIDELocalsList(FSnapshots.SnapShot[AnID]);
@ -3191,11 +3170,6 @@ begin
Result := TCurrentLocalsList(LocalsList);;
end;
procedure TIdeLocalsMonitor.SetSupplier(const AValue: TLocalsSupplier);
begin
inherited Supplier := AValue;
end;
procedure TIdeLocalsMonitor.DoStateEnterPause;
begin
inherited DoStateEnterPause;
@ -3227,8 +3201,6 @@ procedure TIdeLocalsMonitor.DoNewSupplier;
begin
inherited DoNewSupplier;
NotifyChange(nil);
if Supplier <> nil then
Supplier.CurrentLocalsList := CurrentLocalsList;
end;
procedure TIdeLocalsMonitor.RequestData(ALocals: TCurrentLocals);
@ -3631,11 +3603,6 @@ end;
{ TIdeWatchesMonitor }
function TIdeWatchesMonitor.GetSupplier: TWatchesSupplier;
begin
Result := TWatchesSupplier(inherited Supplier);
end;
function TIdeWatchesMonitor.GetSnapshot(AnID: Pointer): TIdeWatches;
begin
Result := TIdeWatches(FSnapshots.SnapShot[AnID]);
@ -3646,11 +3613,6 @@ begin
Result := TCurrentWatches(Watches);
end;
procedure TIdeWatchesMonitor.SetSupplier(const AValue: TWatchesSupplier);
begin
inherited Supplier := AValue;
end;
procedure TIdeWatchesMonitor.DoStateEnterPause;
begin
inherited DoStateEnterPause;
@ -3675,13 +3637,6 @@ begin
NotifyUpdate(CurrentWatches, nil);
end;
procedure TIdeWatchesMonitor.DoNewSupplier;
begin
inherited DoNewSupplier;
if Supplier <> nil then
Supplier.CurrentWatches := CurrentWatches;
end;
procedure TIdeWatchesMonitor.DoModified;
begin
if (FIgnoreModified = 0) and Assigned(FOnModified) then
@ -4366,11 +4321,6 @@ end;
{ TIdeThreadsMonitor }
function TIdeThreadsMonitor.GetSupplier: TThreadsSupplier;
begin
Result := TThreadsSupplier(inherited Supplier);
end;
function TIdeThreadsMonitor.GetSnapshot(AnID: Pointer): TIdeThreads;
begin
Result := TIdeThreads(FSnapshots.SnapShot[AnID]);
@ -4381,11 +4331,6 @@ begin
Result :=TCurrentThreads(Threads);
end;
procedure TIdeThreadsMonitor.SetSupplier(const AValue: TThreadsSupplier);
begin
inherited Supplier := AValue;
end;
procedure TIdeThreadsMonitor.DoModified;
begin
Changed;
@ -4418,8 +4363,6 @@ begin
inherited DoNewSupplier;
if CurrentThreads <> nil then
CurrentThreads.SetValidity(ddsUnknown);
if Supplier <> nil then
Supplier.CurrentThreads := CurrentThreads;
end;
procedure TIdeThreadsMonitor.RequestData;
@ -6435,21 +6378,11 @@ end;
{ TIdeRegistersMonitor }
function TIdeRegistersMonitor.GetSupplier: TRegisterSupplier;
begin
Result := TRegisterSupplier(inherited Supplier);
end;
function TIdeRegistersMonitor.GetCurrentRegistersList: TCurrentIDERegistersList;
begin
Result := TCurrentIDERegistersList(RegistersList);
end;
procedure TIdeRegistersMonitor.SetSupplier(const AValue: TRegisterSupplier);
begin
inherited Supplier := AValue;
end;
procedure TIdeRegistersMonitor.DoStateEnterPause;
begin
inherited DoStateEnterPause;
@ -6485,8 +6418,6 @@ procedure TIdeRegistersMonitor.DoNewSupplier;
begin
inherited DoNewSupplier;
NotifyChange(nil);
if Supplier <> nil then
Supplier.CurrentRegistersList := CurrentRegistersList;
end;
procedure TIdeRegistersMonitor.RequestData(ARegisters: TCurrentIDERegisters);
@ -7040,11 +6971,6 @@ begin
FreeAndNil(FSnapshots);
end;
procedure TIdeCallStackMonitor.SetSupplier(const AValue: TCallStackSupplier);
begin
inherited Supplier := AValue;
end;
procedure TIdeCallStackMonitor.DoStateEnterPause;
begin
inherited DoStateEnterPause;
@ -7110,8 +7036,6 @@ procedure TIdeCallStackMonitor.DoNewSupplier;
begin
inherited DoNewSupplier;
NotifyChange;
if Supplier <> nil then
Supplier.CurrentCallStackList := CurrentCallStackList;
end;
procedure TIdeCallStackMonitor.CallStackClear(Sender: TObject);
@ -7132,11 +7056,6 @@ begin
Result := TIdeCallStackList(FSnapshots.SnapShot[AnID]);
end;
function TIdeCallStackMonitor.GetSupplier: TCallStackSupplier;
begin
Result := TCallStackSupplier(inherited Supplier);
end;
procedure TIdeCallStackMonitor.NotifyChange;
begin
FNotificationList.NotifyChange(Self);

View File

@ -25,7 +25,7 @@
{%region GLOBAL}
{$IFDEF Global_Type}
//type
TEnum = (One, Two, Three);
TEnum = (One, Two, Three, Four, Five, Six);
TEnumSet = set of TEnum;
TSet = Set of (Alpha, Beta, Gamma);
{$ENDIF}
@ -35,6 +35,9 @@
GlobEnum: TEnum;
GlobEnumSet: TEnumSet;
GlobSet: TSet;
GlobSubEnum: Two..Four;
GlobSubRange1: 9..77;
GlobSubRange2: -9..-7;
{$ENDIF}
{$IFDEF Global_Body}
@ -42,6 +45,9 @@
GlobEnum := Two;
GlobEnumSet := [Two, Three];
GlobSet := [Alpha, Beta];
GlobSubEnum := Two;
GlobSubRange1 := 55;
GlobSubRange2 := -8;
{$ENDIF}
{$IFDEF Global_Body_NIL}

View File

@ -210,7 +210,7 @@ type
FLineInfo: TIDELineInfo;
FWatches: TIdeWatchesMonitor;
FThreads: TIdeThreadsMonitor;
FRegisters: TIdeRegistersMonitor;
FRegisters: TRegistersMonitor;
private
FParent: TGDBTestsuite;
FTestBaseName: String;
@ -283,7 +283,7 @@ type
property Disassembler: TIDEDisassembler read FDisassembler;
property Locals: TIdeLocalsMonitor read FLocals;
property LineInfo: TIDELineInfo read FLineInfo;
property Registers: TIdeRegistersMonitor read FRegisters;
property Registers: TRegistersMonitor read FRegisters;
//property Signals: TBaseSignals read FSignals; // A list of actions for signals we know of
property Watches: TIdeWatchesMonitor read FWatches;
property Threads: TIdeThreadsMonitor read FThreads;
@ -534,7 +534,7 @@ begin
FLineInfo := TIDELineInfo.Create;
FCallStack := TIdeCallStackMonitor.Create;
FDisassembler := TIDEDisassembler.Create;
FRegisters := TIdeRegistersMonitor.Create;
FRegisters := TRegistersMonitor.Create;
Result := GdbClass.Create(DebuggerInfo.ExeName);
Result.OnDbgOutput := @InternalDbgOutPut;

View File

@ -51,7 +51,7 @@ type
FLineInfo: TIDELineInfo;
FWatches: TIdeWatchesMonitor;
FThreads: TIdeThreadsMonitor;
FRegisters: TIdeRegistersMonitor;
FRegisters: TRegistersMonitor;
published
procedure RangeMap;
procedure Disassemble;
@ -342,7 +342,7 @@ var
FLocals := TIdeLocalsMonitor.Create;
FLineInfo := TIDELineInfo.Create;
FCallStack := TIdeCallStackMonitor.Create;
FRegisters := TIdeRegistersMonitor.Create;
FRegisters := TRegistersMonitor.Create;
//TManagedBreakpoints(FBreakpoints).Master := FDebugger.BreakPoints;
FWatches.Supplier := Gdb.Watches;