mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-19 18:59:10 +02:00
FPGDBMIDebug: mem mgr
git-svn-id: trunk@44037 -
This commit is contained in:
parent
01dc0a0a0b
commit
e29c075ca4
@ -69,6 +69,7 @@ type
|
||||
FImageLoader: TDbgImageLoader;
|
||||
FDwarfInfo: TDbgDwarf;
|
||||
FMemReader: TFpGDBMIDbgMemReader;
|
||||
FMemManager: TFpDbgMemManager;
|
||||
// cache last context
|
||||
FlastStackFrame, FLastThread: Integer;
|
||||
FLastContext: array [0..MAX_CTX_CACHE-1] of TDbgInfoAddressContext;
|
||||
@ -765,7 +766,7 @@ DebugLn(['######## '+ARequest.Request, ' ## FOUND: ', dbgs(Result)]);
|
||||
rt := nil;
|
||||
if PasExpr.Valid and (PasExpr.ResultValue <> nil) then begin
|
||||
rt := PasExpr.ResultValue.DbgSymbol; // value or typecast
|
||||
if rt <> nil then debugln(['@@@@@ ',rt.ClassName, ' ADDR=', rt.Address]);
|
||||
if rt <> nil then debugln(['@@@@@ ',rt.ClassName, ' ADDR=', dbgs(rt.Address)]);
|
||||
DebugLn(['== VAL === ', PasExpr.ResultValue.AsInteger, ' / ', PasExpr.ResultValue.AsCardinal, ' / ', PasExpr.ResultValue.AsBool, ' / ', PasExpr.ResultValue.AsString, ' / ', PasExpr.ResultValue.MemberCount]);
|
||||
|
||||
if (rt <> nil) and (rt is TDbgDwarfValueIdentifier) then begin
|
||||
@ -948,9 +949,10 @@ begin
|
||||
{$Else}
|
||||
FMemReader := TFpGDBMIDbgMemReader.Create(Self);
|
||||
{$ENDIF}
|
||||
FMemManager := TFpDbgMemManager.Create(FMemReader, TFpDbgMemConvertorLittleEndian.Create);
|
||||
|
||||
FDwarfInfo := TDbgDwarf.Create(FImageLoader);
|
||||
FDwarfInfo.MemReader := FMemReader;
|
||||
FDwarfInfo.MemManager := FMemManager;
|
||||
FDwarfInfo.LoadCompilationUnits;
|
||||
end;
|
||||
|
||||
@ -960,6 +962,9 @@ begin
|
||||
FreeAndNil(FDwarfInfo);
|
||||
FreeAndNil(FImageLoader);
|
||||
FreeAndNil(FMemReader);
|
||||
if FMemManager <> nil then
|
||||
FMemManager.TargetMemConvertor.Free;
|
||||
FreeAndNil(FMemManager);
|
||||
end;
|
||||
|
||||
function TFpGDBMIDebugger.RequestCommand(const ACommand: TDBGCommand;
|
||||
|
Loading…
Reference in New Issue
Block a user