mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-12 03:56:12 +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);
|
procedure SendEvents(out continue: boolean);
|
||||||
property CurrentCommand: TDbgControllerCmd read FCommand;
|
property CurrentCommand: TDbgControllerCmd read FCommand;
|
||||||
property OsDbgClasses: TOSDbgClasses read FOsDbgClasses;
|
property OsDbgClasses: TOSDbgClasses read FOsDbgClasses;
|
||||||
property MemManager: TFpDbgMemManager read FMemManager;
|
property MemManager: TFpDbgMemManager read FMemManager write FMemManager;
|
||||||
property MemModel: TFpDbgMemModel read FMemModel;
|
property MemModel: TFpDbgMemModel read FMemModel write FMemModel;
|
||||||
property DefaultContext: TFpDbgLocationContext read GetDefaultContext; // CurrentThread, TopStackFrame
|
property DefaultContext: TFpDbgLocationContext read GetDefaultContext; // CurrentThread, TopStackFrame
|
||||||
property LastError: TFpError read FLastError;
|
property LastError: TFpError read FLastError;
|
||||||
property Event: TFPDEvent read FPDEvent;
|
property Event: TFPDEvent read FPDEvent;
|
||||||
|
@ -67,8 +67,7 @@ type
|
|||||||
FProcessConfig: TRemoteConfig;
|
FProcessConfig: TRemoteConfig;
|
||||||
procedure UpdateProcessConfig;
|
procedure UpdateProcessConfig;
|
||||||
protected
|
protected
|
||||||
function CreateMemManager: TFpDbgMemManager; override;
|
function ChangeFileName: Boolean; override;
|
||||||
function CreateMemModel: TFpDbgMemModel; override;
|
|
||||||
public
|
public
|
||||||
constructor Create(const AExternalDebugger: String); override;
|
constructor Create(const AExternalDebugger: String); override;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
@ -83,6 +82,9 @@ procedure Register;
|
|||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
|
uses
|
||||||
|
FpDbgCommon, FpDbgLoader;
|
||||||
|
|
||||||
{ TFpRspRemoteDebugger }
|
{ TFpRspRemoteDebugger }
|
||||||
|
|
||||||
procedure TFpRspRemoteDebugger.UpdateProcessConfig;
|
procedure TFpRspRemoteDebugger.UpdateProcessConfig;
|
||||||
@ -99,14 +101,33 @@ begin
|
|||||||
TRemoteConfig(FProcessConFig).SkipSectionsList.Assign(AProperties.SkipUploadOfSectionList);
|
TRemoteConfig(FProcessConFig).SkipSectionsList.Assign(AProperties.SkipUploadOfSectionList);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TFpRspRemoteDebugger.CreateMemManager: TFpDbgMemManager;
|
function TFpRspRemoteDebugger.ChangeFileName: Boolean;
|
||||||
|
var
|
||||||
|
ImgLoader: TDbgImageLoader;
|
||||||
|
target: TTargetDescriptor;
|
||||||
begin
|
begin
|
||||||
Result := TAvrMemManager.Create(FMemReader, FMemConverter, FMemModel);
|
Result := inherited ChangeFileName;
|
||||||
end;
|
|
||||||
|
|
||||||
function TFpRspRemoteDebugger.CreateMemModel: TFpDbgMemModel;
|
// Load the target information from the executable file
|
||||||
begin
|
if FileName <> '' then
|
||||||
Result := TFpDbgAvrMemModel.Create;
|
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;
|
end;
|
||||||
|
|
||||||
constructor TFpRspRemoteDebugger.Create(const AExternalDebugger: String);
|
constructor TFpRspRemoteDebugger.Create(const AExternalDebugger: String);
|
||||||
|
Loading…
Reference in New Issue
Block a user