mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-28 22:20:25 +02:00
FpDebug: Prevent an access violation in TDbgImageLoader constructor. Issue #36763.
git-svn-id: trunk@62700 -
This commit is contained in:
parent
b9e4a03603
commit
d9daa6776b
@ -74,12 +74,12 @@ type
|
||||
constructor Create; virtual;
|
||||
constructor Create(AFileName: String; ADebugMap: TObject = nil;
|
||||
ALoadedTargetImageAddr: TDBGPtr = 0);
|
||||
procedure ParseSymbolTable(AFpSymbolInfo: TfpSymbolList); virtual;
|
||||
{$ifdef USE_WIN_FILE_MAPPING}
|
||||
constructor Create(AFileHandle: THandle; ADebugMap: TObject = nil;
|
||||
ALoadedTargetImageAddr: TDBGPtr = 0);
|
||||
{$endif}
|
||||
destructor Destroy; override;
|
||||
procedure ParseSymbolTable(AFpSymbolInfo: TfpSymbolList); virtual;
|
||||
procedure CloseFileLoader;
|
||||
procedure AddToLoaderList(ALoaderList: TDbgImageLoaderList);
|
||||
function IsValid: Boolean;
|
||||
@ -224,14 +224,10 @@ begin
|
||||
FFileName := AFileName;
|
||||
FFileLoader := TDbgFileLoader.Create(AFileName);
|
||||
FImgReader := GetImageReader(FFileLoader, ADebugMap, False);
|
||||
if FImgReader = nil then FreeAndNil(FFileLoader);
|
||||
FImgReader.LoadedTargetImageAddr := ALoadedTargetImageAddr;
|
||||
end;
|
||||
|
||||
procedure TDbgImageLoader.ParseSymbolTable(AFpSymbolInfo: TfpSymbolList);
|
||||
begin
|
||||
if IsValid then
|
||||
FImgReader.ParseSymbolTable(AFpSymbolInfo);
|
||||
if Assigned(FImgReader) then
|
||||
FImgReader.LoadedTargetImageAddr := ALoadedTargetImageAddr
|
||||
else
|
||||
FreeAndNil(FFileLoader);
|
||||
end;
|
||||
|
||||
{$ifdef USE_WIN_FILE_MAPPING}
|
||||
@ -240,8 +236,10 @@ constructor TDbgImageLoader.Create(AFileHandle: THandle; ADebugMap: TObject;
|
||||
begin
|
||||
FFileLoader := TDbgFileLoader.Create(AFileHandle);
|
||||
FImgReader := GetImageReader(FFileLoader, ADebugMap, False);
|
||||
if FImgReader = nil then FreeAndNil(FFileLoader);
|
||||
FImgReader.LoadedTargetImageAddr := ALoadedTargetImageAddr;
|
||||
if Assigned(FImgReader) then
|
||||
FImgReader.LoadedTargetImageAddr := ALoadedTargetImageAddr
|
||||
else
|
||||
FreeAndNil(FFileLoader);
|
||||
end;
|
||||
{$endif}
|
||||
|
||||
@ -252,6 +250,12 @@ begin
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
procedure TDbgImageLoader.ParseSymbolTable(AFpSymbolInfo: TfpSymbolList);
|
||||
begin
|
||||
if IsValid then
|
||||
FImgReader.ParseSymbolTable(AFpSymbolInfo);
|
||||
end;
|
||||
|
||||
procedure TDbgImageLoader.CloseFileLoader;
|
||||
begin
|
||||
if FFileLoader <> nil then
|
||||
|
Loading…
Reference in New Issue
Block a user