mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-03 05:58:14 +02:00
Only change MemManagager and MemModel for target AVR
This commit is contained in:
parent
c6781743e8
commit
5b4f7aa9f4
@ -332,8 +332,8 @@ type
|
||||
procedure SendEvents(out continue: boolean);
|
||||
property CurrentCommand: TDbgControllerCmd read FCommand;
|
||||
property OsDbgClasses: TOSDbgClasses read FOsDbgClasses;
|
||||
property MemManager: TFpDbgMemManager read FMemManager;
|
||||
property MemModel: TFpDbgMemModel read FMemModel;
|
||||
property MemManager: TFpDbgMemManager read FMemManager write FMemManager;
|
||||
property MemModel: TFpDbgMemModel read FMemModel write FMemModel;
|
||||
property DefaultContext: TFpDbgLocationContext read GetDefaultContext; // CurrentThread, TopStackFrame
|
||||
property LastError: TFpError read FLastError;
|
||||
property Event: TFPDEvent read FPDEvent;
|
||||
|
@ -67,8 +67,7 @@ type
|
||||
FProcessConfig: TRemoteConfig;
|
||||
procedure UpdateProcessConfig;
|
||||
protected
|
||||
function CreateMemManager: TFpDbgMemManager; override;
|
||||
function CreateMemModel: TFpDbgMemModel; override;
|
||||
function ChangeFileName: Boolean; override;
|
||||
public
|
||||
constructor Create(const AExternalDebugger: String); override;
|
||||
destructor Destroy; override;
|
||||
@ -83,6 +82,9 @@ procedure Register;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
FpDbgCommon, FpDbgLoader;
|
||||
|
||||
{ TFpRspRemoteDebugger }
|
||||
|
||||
procedure TFpRspRemoteDebugger.UpdateProcessConfig;
|
||||
@ -99,14 +101,33 @@ begin
|
||||
TRemoteConfig(FProcessConFig).SkipSectionsList.Assign(AProperties.SkipUploadOfSectionList);
|
||||
end;
|
||||
|
||||
function TFpRspRemoteDebugger.CreateMemManager: TFpDbgMemManager;
|
||||
function TFpRspRemoteDebugger.ChangeFileName: Boolean;
|
||||
var
|
||||
ImgLoader: TDbgImageLoader;
|
||||
target: TTargetDescriptor;
|
||||
begin
|
||||
Result := TAvrMemManager.Create(FMemReader, FMemConverter, FMemModel);
|
||||
end;
|
||||
Result := inherited ChangeFileName;
|
||||
|
||||
function TFpRspRemoteDebugger.CreateMemModel: TFpDbgMemModel;
|
||||
begin
|
||||
Result := TFpDbgAvrMemModel.Create;
|
||||
// Load the target information from the executable file
|
||||
if FileName <> '' then
|
||||
begin
|
||||
ImgLoader := TDbgImageLoader.Create(FileName);
|
||||
target := ImgLoader.TargetInfo;
|
||||
ImgLoader.Free;
|
||||
|
||||
// Change MemManager and MemModel for AVR only
|
||||
if (target.machineType = mtAVR8) then
|
||||
begin
|
||||
if Assigned(FMemModel) then FMemModel.Free;
|
||||
FMemModel := TFpDbgAvrMemModel.Create;
|
||||
if Assigned(FMemManager) then FMemManager.Free;
|
||||
FMemManager := TAvrMemManager.Create(FMemReader, FMemConverter, FMemModel);
|
||||
|
||||
// Update debug controller
|
||||
FDbgController.MemModel := FMemModel;
|
||||
FDbgController.MemManager := FMemManager;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
constructor TFpRspRemoteDebugger.Create(const AExternalDebugger: String);
|
||||
|
Loading…
Reference in New Issue
Block a user