From cf72a4270c2df66a7c60521948d497edd5767fef Mon Sep 17 00:00:00 2001 From: martin Date: Thu, 3 May 2018 18:43:32 +0000 Subject: [PATCH] FPDebugger: Fix compilation of testcase git-svn-id: trunk@57781 - --- components/fpdebug/test/testhelperclasses.pas | 2 +- components/fpdebug/test/testtypeinfo.pas | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/components/fpdebug/test/testhelperclasses.pas b/components/fpdebug/test/testhelperclasses.pas index 2045925f84..b781a6a46f 100644 --- a/components/fpdebug/test/testhelperclasses.pas +++ b/components/fpdebug/test/testhelperclasses.pas @@ -827,7 +827,7 @@ end; constructor TTestDummyFileSource.Create; begin - inherited Create(nil, False); + inherited Create(nil, nil, False); FSections := TStringList.Create; end; diff --git a/components/fpdebug/test/testtypeinfo.pas b/components/fpdebug/test/testtypeinfo.pas index e42a60f09a..303198d80a 100644 --- a/components/fpdebug/test/testtypeinfo.pas +++ b/components/fpdebug/test/testtypeinfo.pas @@ -5,9 +5,10 @@ unit TestTypeInfo; interface uses - FpPascalParser, FpDbgDwarf, FpDbgInfo, FpdMemoryTools, FpErrorMessages, LazLoggerBase, - LazUTF8, sysutils, fpcunit, testregistry, TestHelperClasses, TestDwarfSetup1, - TestDwarfSetupBasic, DbgIntfBaseTypes, TestDwarfSetupArray; + FpPascalParser, FpDbgDwarf, FpDbgInfo, FpdMemoryTools, FpErrorMessages, + FpDbgLoader, LazLoggerBase, LazUTF8, sysutils, fpcunit, testregistry, + TestHelperClasses, TestDwarfSetup1, TestDwarfSetupBasic, DbgIntfBaseTypes, + TestDwarfSetupArray; type @@ -24,6 +25,7 @@ type FCurrentContext: TFpDbgInfoContext; FExpression: TFpPascalExpression; FImageLoader: TTestDummyImageLoader; + FImageLoaderList: TDbgImageLoaderList; FMemReader: TTestMemReader; FMemManager: TFpDbgMemManager; @@ -320,9 +322,11 @@ end; procedure TTestTypeInfo.InitDwarf(ALoaderClass: TTestDummyImageLoaderClass); begin FImageLoader := ALoaderClass.Create; + FImageLoaderList := TDbgImageLoaderList.Create(True); + FImageLoaderList.Add(FImageLoader); FMemReader := TTestMemReader.Create; FMemManager := TFpDbgMemManager.Create(FMemReader, TFpDbgMemConvertorLittleEndian.Create); - FDwarfInfo := TFpDwarfInfo.Create(FImageLoader); + FDwarfInfo := TFpDwarfInfo.Create(FImageLoaderList); FDwarfInfo.MemManager := FMemManager; FDwarfInfo.LoadCompilationUnits; end; @@ -331,6 +335,7 @@ procedure TTestTypeInfo.SetUp; begin inherited SetUp; FImageLoader := nil; + FImageLoaderList := nil; FMemReader := nil; FMemManager := nil; FDwarfInfo := nil; @@ -344,7 +349,7 @@ begin FCurrentContext.ReleaseReference; FExpression.Free; FDwarfInfo.Free; - FImageLoader.Free; + FImageLoaderList.Free; FMemReader.Free; if FMemManager <> nil then FMemManager.TargetMemConvertor.Free; @@ -788,6 +793,9 @@ begin ExpResult(svfOrdinal, PtrUInt (ImgLoader.TestStackFrame.Obj1)); case i of 5,6: ExpResult(svfDataSize, TObject.InstanceSize); + // TODO: next line fails in 64 bit, as dummy debug info was created for 32 bit + // in 32 bit the Obj has a size of 32 bytes. + // TODO: this also depends on FPC version else ExpResult(svfDataSize, ImgLoader.TestStackFrame.Obj1.InstanceSize); end;