LazDebuggerFp: tests for modify watch / build modes for test

git-svn-id: trunk@65226 -
This commit is contained in:
martin 2021-06-14 07:30:39 +00:00
parent 3deb9a41fe
commit a0035c6097
3 changed files with 781 additions and 341 deletions

View File

@ -11,10 +11,303 @@
<Title Value="LazDebFpTest"/>
<ResourceType Value="res"/>
<UseXPManifest Value="True"/>
<Icon Value="0"/>
</General>
<BuildModes Count="1">
<Item1 Name="Default" Default="True"/>
<BuildModes Count="16">
<Item1 Name="O- CRriot gh gt Sa" Default="True"/>
<Item2 Name="O- CRriot gh gtt Sa">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="LazDebFpTest"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<Linking>
<Debugging>
<DebugInfoType Value="dsDwarf2Set"/>
</Debugging>
</Linking>
</CompilerOptions>
</Item2>
<Item3 Name="O- CRriot gh gttt Sa">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="LazDebFpTest"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<Linking>
<Debugging>
<DebugInfoType Value="dsDwarf2Set"/>
</Debugging>
</Linking>
</CompilerOptions>
</Item3>
<Item4 Name="O- CRriot Sa">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="LazDebFpTest"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<Linking>
<Debugging>
<DebugInfoType Value="dsDwarf2Set"/>
</Debugging>
</Linking>
</CompilerOptions>
</Item4>
<Item5 Name="O1 Criot gh gt Sa">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="LazDebFpTest"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<Linking>
<Debugging>
<DebugInfoType Value="dsDwarf2Set"/>
</Debugging>
</Linking>
</CompilerOptions>
</Item5>
<Item6 Name="O1 Criot gh gtt Sa Si">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="LazDebFpTest"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<Linking>
<Debugging>
<DebugInfoType Value="dsDwarf2Set"/>
</Debugging>
</Linking>
</CompilerOptions>
</Item6>
<Item7 Name="O1 Criot Si">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="LazDebFpTest"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<Linking>
<Debugging>
<DebugInfoType Value="dsDwarf2Set"/>
</Debugging>
</Linking>
</CompilerOptions>
</Item7>
<Item8 Name="O2 CRriot Sa Si">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="LazDebFpTest"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<Linking>
<Debugging>
<DebugInfoType Value="dsDwarf2Set"/>
</Debugging>
</Linking>
</CompilerOptions>
</Item8>
<Item9 Name="O2 Sa Si">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="LazDebFpTest"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<Linking>
<Debugging>
<DebugInfoType Value="dsDwarf2Set"/>
</Debugging>
</Linking>
</CompilerOptions>
</Item9>
<Item10 Name="O3 Sa Si">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="LazDebFpTest"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<Linking>
<Debugging>
<DebugInfoType Value="dsDwarf2Set"/>
</Debugging>
</Linking>
</CompilerOptions>
</Item10>
<Item11 Name="O- opt">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="LazDebFpTest"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<Linking>
<Debugging>
<DebugInfoType Value="dsDwarf2Set"/>
</Debugging>
</Linking>
</CompilerOptions>
</Item11>
<Item12 Name="O1 opt">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="LazDebFpTest"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<Linking>
<Debugging>
<DebugInfoType Value="dsDwarf2Set"/>
</Debugging>
</Linking>
</CompilerOptions>
</Item12>
<Item13 Name="O2 opt">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="LazDebFpTest"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<Linking>
<Debugging>
<DebugInfoType Value="dsDwarf2Set"/>
</Debugging>
</Linking>
</CompilerOptions>
</Item13>
<Item14 Name="O3 opt">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="LazDebFpTest"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<Linking>
<Debugging>
<DebugInfoType Value="dsDwarf2Set"/>
</Debugging>
</Linking>
</CompilerOptions>
</Item14>
<Item15 Name="O4 opt">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="LazDebFpTest"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<Linking>
<Debugging>
<DebugInfoType Value="dsDwarf2Set"/>
</Debugging>
</Linking>
</CompilerOptions>
</Item15>
<Item16 Name="32 bit O- CRriot gh gt">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="LazDebFpTest"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<CodeGeneration>
<TargetCPU Value="i386"/>
</CodeGeneration>
<Linking>
<Debugging>
<DebugInfoType Value="dsDwarf2Set"/>
</Debugging>
</Linking>
</CompilerOptions>
</Item16>
<SharedMatrixOptions Count="19">
<Item1 ID="892138315231" Targets="#project,LazDebuggerFp,FpDebug,DebuggerIntf" Modes="O- CRriot gh gt Sa,O- CRriot gh gtt Sa,O- CRriot gh gttt Sa,O- CRriot Sa,O- opt,32 bit O- CRriot gh gt" Value="-O-"/>
<Item2 ID="942436582238" Targets="#project,LazDebuggerFp,FpDebug,DebuggerIntf" Modes="O1 Criot gh gt Sa,O1 Criot gh gtt Sa Si,O1 Criot Si,O1 opt" Value="-O-1"/>
<Item3 ID="862987172568" Targets="#project,LazDebuggerFp,FpDebug,DebuggerIntf" Modes="O2 CRriot Sa Si,O2 Sa Si,O2 opt" Value="-O-2"/>
<Item4 ID="065298354086" Targets="#project,LazDebuggerFp,FpDebug,DebuggerIntf" Modes="O3 Sa Si,O3 opt" Value="-O-3"/>
<Item5 ID="450520149060" Targets="#project,LazDebuggerFp,FpDebug,DebuggerIntf" Modes="O4 opt" Value="-O-4"/>
<Item6 ID="707355750253" Targets="#project,LazDebuggerFp,FpDebug,DebuggerIntf" Modes="O- CRriot gh gt Sa,O- CRriot gh gtt Sa,O- CRriot gh gttt Sa,O- CRriot Sa,O1 Criot gh gt Sa,32 bit O- CRriot gh gt" Value="-Si-"/>
<Item7 ID="015770976638" Targets="#project,LazDebuggerFp,FpDebug,DebuggerIntf" Modes="O1 Criot gh gtt Sa Si,O1 Criot Si,O2 CRriot Sa Si,O2 Sa Si,O3 Sa Si,O- opt,O1 opt,O2 opt,O3 opt,O4 opt" Value="-Si"/>
<Item8 ID="829928402724" Targets="#project,LazDebuggerFp,FpDebug,DebuggerIntf" Modes="O1 Criot Si,O- opt,O1 opt,O2 opt,O3 opt,O4 opt" Value="-Sa-"/>
<Item9 ID="741586091227" Targets="#project,LazDebuggerFp,FpDebug,DebuggerIntf" Modes="O- CRriot gh gt Sa,O- CRriot gh gtt Sa,O- CRriot gh gttt Sa,O- CRriot Sa,O1 Criot gh gt Sa,O1 Criot gh gtt Sa Si,O2 CRriot Sa Si,O2 Sa Si,O3 Sa Si,32 bit O- CRriot gh gt" Value="-Sa"/>
<Item10 ID="384346637257" Targets="#project,LazDebuggerFp,FpDebug,DebuggerIntf" Modes="O- CRriot gh gt Sa,O- CRriot gh gtt Sa,O- CRriot gh gttt Sa,O1 Criot gh gt Sa,O1 Criot gh gtt Sa Si,32 bit O- CRriot gh gt" Value="-gh"/>
<Item11 ID="938629446379" Targets="#project,LazDebuggerFp,FpDebug,DebuggerIntf" Modes="O- CRriot gh gt Sa,O1 Criot gh gt Sa,32 bit O- CRriot gh gt" Value="-gt"/>
<Item12 ID="083874750360" Targets="#project,LazDebuggerFp,FpDebug,DebuggerIntf" Modes="O- CRriot gh gtt Sa,O1 Criot gh gtt Sa Si" Value="-gtt"/>
<Item13 ID="624937376596" Targets="#project,LazDebuggerFp,FpDebug,DebuggerIntf" Modes="O- CRriot gh gttt Sa" Value="-gttt"/>
<Item14 ID="960178335680" Targets="#project,LazDebuggerFp,FpDebug,DebuggerIntf" Modes="O1 Criot gh gt Sa,O1 Criot gh gtt Sa Si,O1 Criot Si,O2 Sa Si,O3 Sa Si,O- opt,O1 opt,O2 opt,O3 opt,O4 opt" Value="-CR-"/>
<Item15 ID="580833933537" Targets="#project,LazDebuggerFp,FpDebug,DebuggerIntf" Modes="O- CRriot gh gt Sa,O- CRriot gh gtt Sa,O- CRriot gh gttt Sa,O- CRriot Sa,O2 CRriot Sa Si,32 bit O- CRriot gh gt" Value="-CR"/>
<Item16 ID="896975201702" Targets="#project,LazDebuggerFp,FpDebug,DebuggerIntf" Modes="O2 Sa Si,O3 Sa Si,O- opt,O1 opt,O2 opt,O3 opt,O4 opt" Value="-Cr- -Ci- -Co- -Ct-"/>
<Item17 ID="596749297552" Targets="#project,LazDebuggerFp,FpDebug,DebuggerIntf" Modes="O- CRriot gh gt Sa,O- CRriot gh gtt Sa,O- CRriot gh gttt Sa,O- CRriot Sa,O1 Criot gh gt Sa,O1 Criot Si,O1 Criot gh gtt Sa Si,O2 CRriot Sa Si,32 bit O- CRriot gh gt" Value="-Criot"/>
<Item18 ID="313431544377" Targets="#project,LazDebuggerFp,FpDebug,DebuggerIntf" Modes="O- CRriot gh gt Sa,O- CRriot gh gtt Sa,O- CRriot gh gttt Sa,O- CRriot Sa,O1 Criot gh gt Sa,O1 Criot gh gtt Sa Si,O1 Criot Si,O2 CRriot Sa Si,O3 Sa Si,O2 Sa Si,O- opt,O1 opt,O2 opt,O4 opt,O3 opt,32 bit O- CRriot gh gt" Value="-gw2 -godwarfsets -gl"/>
<Item19 ID="509503769266" Targets="#project,LazDebuggerFp,FpDebug,DebuggerIntf" Modes="O- opt,O1 opt,O2 opt,O3 opt,O4 opt" Value="-dLINUX_NO_PTRACE_ALIGN"/>
</SharedMatrixOptions>
</BuildModes>
<PublishOptions>
<Version Value="2"/>
@ -89,27 +382,17 @@
</SearchPaths>
<Parsing>
<SyntaxOptions>
<IncludeAssertionCode Value="True"/>
<CPPInline Value="False"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<Checks>
<IOChecks Value="True"/>
<RangeChecks Value="True"/>
<OverflowChecks Value="True"/>
<StackChecks Value="True"/>
</Checks>
</CodeGeneration>
<Linking>
<Debugging>
<DebugInfoType Value="dsDwarf2Set"/>
<UseHeaptrc Value="True"/>
<TrashVariables Value="True"/>
</Debugging>
</Linking>
</CompilerOptions>
<Debugging>
<Exceptions Count="4">
<Exceptions Count="5">
<Item1>
<Name Value="EAbort"/>
</Item1>
@ -122,6 +405,9 @@
<Item4>
<Name Value="EAssertionFailedError"/>
</Item4>
<Item5>
<Name Value="EResNotFound"/>
</Item5>
</Exceptions>
</Debugging>
</CONFIG>

View File

@ -478,7 +478,7 @@ begin
if not TestControlCanTest(ControlTestWatchScope) then exit;
t := nil;
Src := GetCommonSourceFor('WatchesScopePrg.Pas');
Src := GetCommonSourceFor('WatchesScopePrg.pas');
TestCompile(Src, ExeName);
AssertTrue('Start debugger', Debugger.StartDebugger(AppDir, ExeName));
@ -1137,7 +1137,7 @@ begin
if not TestControlCanTest(ControlTestWatchValue) then exit;
t := nil;
Src := GetCommonSourceFor('WatchesValuePrg.Pas');
Src := GetCommonSourceFor('WatchesValuePrg.pas');
TestCompile(Src, ExeName);
AssertTrue('Start debugger', Debugger.StartDebugger(AppDir, ExeName));
@ -1379,7 +1379,7 @@ begin
if not TestControlCanTest(ControlTestWatchFunct) then exit;
t := nil;
Src := GetCommonSourceFor('WatchesValuePrg.Pas');
Src := GetCommonSourceFor('WatchesValuePrg.pas');
TestCompile(Src, ExeName);
AssertTrue('Start debugger', Debugger.StartDebugger(AppDir, ExeName));
@ -1686,7 +1686,7 @@ begin
t := nil;
tp := nil;
Src := GetCommonSourceFor('WatchesValuePrg.Pas');
Src := GetCommonSourceFor('WatchesValuePrg.pas');
TestCompile(Src, ExeName);
AssertTrue('Start debugger', Debugger.StartDebugger(AppDir, ExeName));
@ -2038,7 +2038,7 @@ begin
t := nil;
t2 := nil;
Src := GetCommonSourceFor('WatchesValuePrg.Pas');
Src := GetCommonSourceFor('WatchesValuePrg.pas');
TestCompile(Src, ExeName);
AssertTrue('Start debugger', Debugger.StartDebugger(AppDir, ExeName));
@ -2249,7 +2249,7 @@ begin
if not TestControlCanTest(ControlTestExpression) then exit;
t := nil;
Src := GetCommonSourceFor('WatchesValuePrg.Pas');
Src := GetCommonSourceFor('WatchesValuePrg.pas');
TestCompile(Src, ExeName);
AssertTrue('Start debugger', Debugger.StartDebugger(AppDir, ExeName));
@ -2472,16 +2472,18 @@ procedure TTestWatches.TestWatchesModify;
end;
end;
var
ExeName: String;
ExeName, ExpName: String;
t: TWatchExpectationList;
Src: TCommonSource;
BrkPrg: TDBGBreakPoint;
ExpPre: TWatchExpectationResult;
testidx: Integer;
begin
if SkipTest then exit;
if not TestControlCanTest(ControlTestModify) then exit;
t := nil;
Src := GetCommonSourceFor('WatchesValuePrg.Pas');
Src := GetCommonSourceFor('WatchesValuePrg.pas');
TestCompile(Src, ExeName);
AssertTrue('Start debugger', Debugger.StartDebugger(AppDir, ExeName));
@ -2503,365 +2505,374 @@ begin
RunToPause(BrkPrg);
t.Clear;
for testidx := 0 to 1 do begin
ExpPre := weCardinal(qword($9696969696969696), 'QWord', 8);
ExpName := 'ModifyTest';
if testidx = 1 then begin
ExpPre := weCardinal(byte($96), 'Byte', 1);
ExpName := 'ModifyPackTest';
end;
//t.Add(AName, p+'QWord'+e, weCardinal(10000+n, 'QWord', 8));
//t.Add(AName, p+'Shortint'+e, weInteger (50+n, 'Shortint', 1));
t.Clear;
t.Add('(before)', 'ModifyTestByte.pre', weCardinal(qword($9696969696969696), 'QWord', 8));
t.Add('(before)', 'ModifyTestByte.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', 'ModifyTestByte.val', weCardinal($01, 'Byte', 1));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify('ModifyTestByte.val', '131');
WaitForModify;
t.Add('(after)', 'ModifyTestByte.pre', weCardinal(qword($9696969696969696), 'QWord', 8));
t.Add('(after)', 'ModifyTestByte.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', 'ModifyTestByte.val', weCardinal(131, 'Byte', 1));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
//t.Add(AName, p+'QWord'+e, weCardinal(10000+n, 'QWord', 8));
//t.Add(AName, p+'Shortint'+e, weInteger (50+n, 'Shortint', 1));
t.Add('(before)', ExpName + 'Byte.pre', ExpPre);
t.Add('(before)', ExpName + 'Byte.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', ExpName + 'Byte.val', weCardinal($01, 'Byte', 1));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify(ExpName + 'Byte.val', '131');
WaitForModify;
t.Add('(after)', ExpName + 'Byte.pre', ExpPre);
t.Add('(after)', ExpName + 'Byte.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', ExpName + 'Byte.val', weCardinal(131, 'Byte', 1));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', 'ModifyTestWord.pre', weCardinal(qword($9696969696969696), 'QWord', 8));
t.Add('(before)', 'ModifyTestWord.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', 'ModifyTestWord.val', weCardinal($0101, 'Word', 2));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify('ModifyTestWord.val', '35131');
WaitForModify;
t.Add('(after)', 'ModifyTestWord.pre', weCardinal(qword($9696969696969696), 'QWord', 8));
t.Add('(after)', 'ModifyTestWord.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', 'ModifyTestWord.val', weCardinal(35131, 'Word', 2));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', ExpName + 'Word.pre', ExpPre);
t.Add('(before)', ExpName + 'Word.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', ExpName + 'Word.val', weCardinal($0101, 'Word', 2));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify(ExpName + 'Word.val', '35131');
WaitForModify;
t.Add('(after)', ExpName + 'Word.pre', ExpPre);
t.Add('(after)', ExpName + 'Word.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', ExpName + 'Word.val', weCardinal(35131, 'Word', 2));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', 'ModifyTestCardinal.pre', weCardinal(qword($9696969696969696), 'QWord', 8));
t.Add('(before)', 'ModifyTestCardinal.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', 'ModifyTestCardinal.val', weCardinal($81020102, 'Cardinal', 4));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify('ModifyTestCardinal.val', '$9AA93333');
WaitForModify;
t.Add('(after)', 'ModifyTestCardinal.pre', weCardinal(qword($9696969696969696), 'QWord', 8));
t.Add('(after)', 'ModifyTestCardinal.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', 'ModifyTestCardinal.val', weCardinal($9AA93333, 'Cardinal', 4));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', ExpName + 'Cardinal.pre', ExpPre);
t.Add('(before)', ExpName + 'Cardinal.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', ExpName + 'Cardinal.val', weCardinal($81020102, 'Cardinal', 4));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify(ExpName + 'Cardinal.val', '$9AA93333');
WaitForModify;
t.Add('(after)', ExpName + 'Cardinal.pre', ExpPre);
t.Add('(after)', ExpName + 'Cardinal.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', ExpName + 'Cardinal.val', weCardinal($9AA93333, 'Cardinal', 4));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', 'ModifyTestQWord.pre', weCardinal(qword($9696969696969696), 'QWord', 8));
t.Add('(before)', 'ModifyTestQWord.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', 'ModifyTestQWord.val', weCardinal(qword($8102010201020102), 'QWord', 8));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify('ModifyTestQWord.val', '$9AA9333344224422');
WaitForModify;
t.Add('(after)', 'ModifyTestQWord.pre', weCardinal(qword($9696969696969696), 'QWord', 8));
t.Add('(after)', 'ModifyTestQWord.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', 'ModifyTestQWord.val', weCardinal(qword($9AA9333344224422), 'QWord', 8));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', ExpName + 'QWord.pre', ExpPre);
t.Add('(before)', ExpName + 'QWord.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', ExpName + 'QWord.val', weCardinal(qword($8102010201020102), 'QWord', 8));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify(ExpName + 'QWord.val', '$9AA9333344224422');
WaitForModify;
t.Add('(after)', ExpName + 'QWord.pre', ExpPre);
t.Add('(after)', ExpName + 'QWord.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', ExpName + 'QWord.val', weCardinal(qword($9AA9333344224422), 'QWord', 8));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', 'ModifyTestInt.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(before)', 'ModifyTestInt.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', 'ModifyTestInt.val', weInteger(-$01030103, 'Integer', 4));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify('ModifyTestInt.val', '$44225522');
WaitForModify;
t.Add('(after)', 'ModifyTestInt.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(after)', 'ModifyTestInt.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', 'ModifyTestInt.val', weInteger($44225522, 'Integer', 4));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', ExpName + 'Int.pre', ExpPre);
t.Add('(before)', ExpName + 'Int.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', ExpName + 'Int.val', weInteger(-$01030103, 'Integer', 4));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify(ExpName + 'Int.val', '$44225522');
WaitForModify;
t.Add('(after)', ExpName + 'Int.pre', ExpPre);
t.Add('(after)', ExpName + 'Int.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', ExpName + 'Int.val', weInteger($44225522, 'Integer', 4));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', 'ModifyTestInt64.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(before)', 'ModifyTestInt64.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', 'ModifyTestInt64.val', weInteger(-$0103010301030103, 'Int64', 8));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify('ModifyTestInt64.val', '$4422552201020102');
WaitForModify;
t.Add('(after)', 'ModifyTestInt64.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(after)', 'ModifyTestInt64.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', 'ModifyTestInt64.val', weInteger($4422552201020102, 'Int64', 8));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', ExpName + 'Int64.pre', ExpPre);
t.Add('(before)', ExpName + 'Int64.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', ExpName + 'Int64.val', weInteger(-$0103010301030103, 'Int64', 8));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify(ExpName + 'Int64.val', '$4422552201020102');
WaitForModify;
t.Add('(after)', ExpName + 'Int64.pre', ExpPre);
t.Add('(after)', ExpName + 'Int64.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', ExpName + 'Int64.val', weInteger($4422552201020102, 'Int64', 8));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', 'ModifyTestPointer.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(before)', 'ModifyTestPointer.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', 'ModifyTestPointer.val', wePointerAddr(Pointer(30), 'Pointer'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify('ModifyTestPointer.val', '50');
WaitForModify;
t.Add('(after)', 'ModifyTestPointer.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(after)', 'ModifyTestPointer.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', 'ModifyTestPointer.val', wePointerAddr(Pointer(50), 'Pointer'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', ExpName + 'Pointer.pre', ExpPre);
t.Add('(before)', ExpName + 'Pointer.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', ExpName + 'Pointer.val', wePointerAddr(Pointer(30), 'Pointer'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify(ExpName + 'Pointer.val', '50');
WaitForModify;
t.Add('(after)', ExpName + 'Pointer.pre', ExpPre);
t.Add('(after)', ExpName + 'Pointer.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', ExpName + 'Pointer.val', wePointerAddr(Pointer(50), 'Pointer'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', 'ModifyTestPWord.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(before)', 'ModifyTestPWord.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', 'ModifyTestPWord.val', wePointerAddr(Pointer(40), 'PWord'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify('ModifyTestPWord.val', '70');
WaitForModify;
t.Add('(after)', 'ModifyTestPWord.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(after)', 'ModifyTestPWord.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', 'ModifyTestPWord.val', wePointerAddr(Pointer(70), 'PWord'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', ExpName + 'PWord.pre', ExpPre);
t.Add('(before)', ExpName + 'PWord.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', ExpName + 'PWord.val', wePointerAddr(Pointer(40), 'PWord'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify(ExpName + 'PWord.val', '70');
WaitForModify;
t.Add('(after)', ExpName + 'PWord.pre', ExpPre);
t.Add('(after)', ExpName + 'PWord.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', ExpName + 'PWord.val', wePointerAddr(Pointer(70), 'PWord'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', 'ModifyTestBool.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(before)', 'ModifyTestBool.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', 'ModifyTestBool.val', weBool(True));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify('ModifyTestBool.val', 'False');
WaitForModify;
t.Add('(after)', 'ModifyTestBool.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(after)', 'ModifyTestBool.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', 'ModifyTestBool.val', weBool(False));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', ExpName + 'Bool.pre', ExpPre);
t.Add('(before)', ExpName + 'Bool.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', ExpName + 'Bool.val', weBool(True));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify(ExpName + 'Bool.val', 'False');
WaitForModify;
t.Add('(after)', ExpName + 'Bool.pre', ExpPre);
t.Add('(after)', ExpName + 'Bool.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', ExpName + 'Bool.val', weBool(False));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', 'ModifyTestByteBool.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(before)', 'ModifyTestByteBool.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', 'ModifyTestByteBool.val', weSizedBool(False, 'BYTEBOOL'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify('ModifyTestByteBool.val', 'True');
WaitForModify;
t.Add('(after)', 'ModifyTestByteBool.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(after)', 'ModifyTestByteBool.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', 'ModifyTestByteBool.val', weSizedBool(True, 'BYTEBOOL'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', ExpName + 'ByteBool.pre', ExpPre);
t.Add('(before)', ExpName + 'ByteBool.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', ExpName + 'ByteBool.val', weSizedBool(False, 'BYTEBOOL'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify(ExpName + 'ByteBool.val', 'True');
WaitForModify;
t.Add('(after)', ExpName + 'ByteBool.pre', ExpPre);
t.Add('(after)', ExpName + 'ByteBool.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', ExpName + 'ByteBool.val', weSizedBool(True, 'BYTEBOOL'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', 'ModifyTestChar.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(before)', 'ModifyTestChar.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', 'ModifyTestChar.val', weChar('B'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify('ModifyTestChar.val', 'X');
WaitForModify;
t.Add('(after)', 'ModifyTestChar.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(after)', 'ModifyTestChar.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', 'ModifyTestChar.val', weChar('X'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', ExpName + 'Char.pre', ExpPre);
t.Add('(before)', ExpName + 'Char.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', ExpName + 'Char.val', weChar('B'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify(ExpName + 'Char.val', 'X');
WaitForModify;
t.Add('(after)', ExpName + 'Char.pre', ExpPre);
t.Add('(after)', ExpName + 'Char.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', ExpName + 'Char.val', weChar('X'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', 'ModifyTestWideChar.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(before)', 'ModifyTestWideChar.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', 'ModifyTestWideChar.val', weWideChar('B'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify('ModifyTestWideChar.val', 'Y');
WaitForModify;
t.Add('(after)', 'ModifyTestWideChar.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(after)', 'ModifyTestWideChar.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', 'ModifyTestWideChar.val', weWideChar('Y'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', ExpName + 'WideChar.pre', ExpPre);
t.Add('(before)', ExpName + 'WideChar.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', ExpName + 'WideChar.val', weWideChar('B'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify(ExpName + 'WideChar.val', 'Y');
WaitForModify;
t.Add('(after)', ExpName + 'WideChar.pre', ExpPre);
t.Add('(after)', ExpName + 'WideChar.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', ExpName + 'WideChar.val', weWideChar('Y'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', 'ModifyTestEnum.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(before)', 'ModifyTestEnum.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', 'ModifyTestEnum.val', weEnum('EnVal2'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify('ModifyTestEnum.val', 'EnVal4');
WaitForModify;
t.Add('(after)', 'ModifyTestEnum.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(after)', 'ModifyTestEnum.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', 'ModifyTestEnum.val', weEnum('EnVal4'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', ExpName + 'Enum.pre', ExpPre);
t.Add('(before)', ExpName + 'Enum.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', ExpName + 'Enum.val', weEnum('EnVal2'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify(ExpName + 'Enum.val', 'EnVal4');
WaitForModify;
t.Add('(after)', ExpName + 'Enum.pre', ExpPre);
t.Add('(after)', ExpName + 'Enum.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', ExpName + 'Enum.val', weEnum('EnVal4'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', 'ModifyTestEnum16.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(before)', 'ModifyTestEnum16.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', 'ModifyTestEnum16.val', weEnum('ExValX2'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify('ModifyTestEnum16.val', 'ExValX7');
WaitForModify;
t.Add('(after)', 'ModifyTestEnum16.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(after)', 'ModifyTestEnum16.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', 'ModifyTestEnum16.val', weEnum('ExValX7'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', ExpName + 'Enum16.pre', ExpPre);
t.Add('(before)', ExpName + 'Enum16.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', ExpName + 'Enum16.val', weEnum('ExValX2'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify(ExpName + 'Enum16.val', 'ExValX7');
WaitForModify;
t.Add('(after)', ExpName + 'Enum16.pre', ExpPre);
t.Add('(after)', ExpName + 'Enum16.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', ExpName + 'Enum16.val', weEnum('ExValX7'));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
if Compiler.SymbolType <> stDwarf then begin
if Compiler.SymbolType <> stDwarf then begin
t.Add('(before)', 'ModifyTestSet.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(before)', 'ModifyTestSet.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', 'ModifyTestSet.val', weSet(['EnVal2', 'EnVal4']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify('ModifyTestSet.val', ' [ EnVal1, EnVal3] ');
WaitForModify;
t.Add('(after)', 'ModifyTestSet.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(after)', 'ModifyTestSet.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', 'ModifyTestSet.val', weSet(['EnVal1', 'EnVal3']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify('ModifyTestSet.val', ' [ EnVal1] ');
WaitForModify;
t.Add('(after)', 'ModifyTestSet.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(after)', 'ModifyTestSet.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', 'ModifyTestSet.val', weSet(['EnVal1']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify('ModifyTestSet.val', ' [ EnVal4] ');
WaitForModify;
t.Add('(after)', 'ModifyTestSet.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(after)', 'ModifyTestSet.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', 'ModifyTestSet.val', weSet(['EnVal4']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', ExpName + 'Set.pre', ExpPre);
t.Add('(before)', ExpName + 'Set.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', ExpName + 'Set.val', weSet(['EnVal2', 'EnVal4']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify(ExpName + 'Set.val', ' [ EnVal1, EnVal3] ');
WaitForModify;
t.Add('(after)', ExpName + 'Set.pre', ExpPre);
t.Add('(after)', ExpName + 'Set.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', ExpName + 'Set.val', weSet(['EnVal1', 'EnVal3']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify(ExpName + 'Set.val', ' [ EnVal1] ');
WaitForModify;
t.Add('(after)', ExpName + 'Set.pre', ExpPre);
t.Add('(after)', ExpName + 'Set.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', ExpName + 'Set.val', weSet(['EnVal1']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify(ExpName + 'Set.val', ' [ EnVal4] ');
WaitForModify;
t.Add('(after)', ExpName + 'Set.pre', ExpPre);
t.Add('(after)', ExpName + 'Set.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', ExpName + 'Set.val', weSet(['EnVal4']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', 'ModifyTestSet4.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(before)', 'ModifyTestSet4.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', 'ModifyTestSet4.val', weSet(['E4Val02', 'E4Val09']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify('ModifyTestSet4.val', '[E4Val03,E4Val0A ]');
WaitForModify;
t.Add('(after)', 'ModifyTestSet4.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(after)', 'ModifyTestSet4.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', 'ModifyTestSet4.val', weSet(['E4Val03', 'E4Val0A']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify('ModifyTestSet4.val', ' [E4Val0B ]');
WaitForModify;
t.Add('(after)', 'ModifyTestSet4.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(after)', 'ModifyTestSet4.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', 'ModifyTestSet4.val', weSet(['E4Val0B']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', ExpName + 'Set4.pre', ExpPre);
t.Add('(before)', ExpName + 'Set4.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', ExpName + 'Set4.val', weSet(['E4Val02', 'E4Val09']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify(ExpName + 'Set4.val', '[E4Val03,E4Val0A ]');
WaitForModify;
t.Add('(after)', ExpName + 'Set4.pre', ExpPre);
t.Add('(after)', ExpName + 'Set4.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', ExpName + 'Set4.val', weSet(['E4Val03', 'E4Val0A']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify(ExpName + 'Set4.val', ' [E4Val0B ]');
WaitForModify;
t.Add('(after)', ExpName + 'Set4.pre', ExpPre);
t.Add('(after)', ExpName + 'Set4.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', ExpName + 'Set4.val', weSet(['E4Val0B']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', 'ModifyTestSet6.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(before)', 'ModifyTestSet6.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', 'ModifyTestSet6.val', weSet(['E6Val02', 'E6Val1A']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify('ModifyTestSet6.val', '[E6Val03,E6Val1B ]');
WaitForModify;
t.Add('(after)', 'ModifyTestSet6.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(after)', 'ModifyTestSet6.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', 'ModifyTestSet6.val', weSet(['E6Val03', 'E6Val1B']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', ExpName + 'Set6.pre', ExpPre);
t.Add('(before)', ExpName + 'Set6.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', ExpName + 'Set6.val', weSet(['E6Val02', 'E6Val1A']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify(ExpName + 'Set6.val', '[E6Val03,E6Val1B ]');
WaitForModify;
t.Add('(after)', ExpName + 'Set6.pre', ExpPre);
t.Add('(after)', ExpName + 'Set6.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', ExpName + 'Set6.val', weSet(['E6Val03', 'E6Val1B']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', 'ModifyTestSet7.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(before)', 'ModifyTestSet7.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', 'ModifyTestSet7.val', weSet(['E7Val02', 'E7Val3A']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify('ModifyTestSet7.val', '[E7Val03,E7Val12,E7Val3B ]');
WaitForModify;
t.Add('(after)', 'ModifyTestSet7.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(after)', 'ModifyTestSet7.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', 'ModifyTestSet7.val', weSet(['E7Val03', 'E7Val12', 'E7Val3B']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', ExpName + 'Set7.pre', ExpPre);
t.Add('(before)', ExpName + 'Set7.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', ExpName + 'Set7.val', weSet(['E7Val02', 'E7Val3A']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify(ExpName + 'Set7.val', '[E7Val03,E7Val12,E7Val3B ]');
WaitForModify;
t.Add('(after)', ExpName + 'Set7.pre', ExpPre);
t.Add('(after)', ExpName + 'Set7.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', ExpName + 'Set7.val', weSet(['E7Val03', 'E7Val12', 'E7Val3B']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', 'ModifyTestSet8.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(before)', 'ModifyTestSet8.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', 'ModifyTestSet8.val', weSet(['E8Val02', 'E8Val59']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify('ModifyTestSet8.val', '[E8Val03,E8Val12,E8Val58 ]');
WaitForModify;
t.Add('(after)', 'ModifyTestSet8.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(after)', 'ModifyTestSet8.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', 'ModifyTestSet8.val', weSet(['E8Val03', 'E8Val12', 'E8Val58']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', ExpName + 'Set8.pre', ExpPre);
t.Add('(before)', ExpName + 'Set8.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', ExpName + 'Set8.val', weSet(['E8Val02', 'E8Val59']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify(ExpName + 'Set8.val', '[E8Val03,E8Val12,E8Val58 ]');
WaitForModify;
t.Add('(after)', ExpName + 'Set8.pre', ExpPre);
t.Add('(after)', ExpName + 'Set8.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', ExpName + 'Set8.val', weSet(['E8Val03', 'E8Val12', 'E8Val58']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', 'ModifyTestSRangeSet.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(before)', 'ModifyTestSRangeSet.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', 'ModifyTestSRangeSet.val', weSet(['20','23','28']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify('ModifyTestSRangeSet.val', '[21,$18,27 ]');
WaitForModify;
t.Add('(after)', 'ModifyTestSRangeSet.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(after)', 'ModifyTestSRangeSet.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', 'ModifyTestSRangeSet.val', weSet(['21', '24', '27']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify('ModifyTestSRangeSet.val', '[30 ]');
WaitForModify;
t.Add('(after)', 'ModifyTestSRangeSet.pre', weCardinal(QWord($9696969696969696), 'QWord', 8));
t.Add('(after)', 'ModifyTestSRangeSet.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', 'ModifyTestSRangeSet.val', weSet(['30']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
t.Add('(before)', ExpName + 'SRangeSet.pre', ExpPre);
t.Add('(before)', ExpName + 'SRangeSet.post', weCardinal($69, 'Byte', 1));
t.Add('(before)', ExpName + 'SRangeSet.val', weSet(['20','23','28']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify(ExpName + 'SRangeSet.val', '[21,$18,27 ]');
WaitForModify;
t.Add('(after)', ExpName + 'SRangeSet.pre', ExpPre);
t.Add('(after)', ExpName + 'SRangeSet.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', ExpName + 'SRangeSet.val', weSet(['21', '24', '27']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
Debugger.LazDebugger.Modify(ExpName + 'SRangeSet.val', '[30 ]');
WaitForModify;
t.Add('(after)', ExpName + 'SRangeSet.pre', ExpPre);
t.Add('(after)', ExpName + 'SRangeSet.post', weCardinal($69, 'Byte', 1));
t.Add('(after)', ExpName + 'SRangeSet.val', weSet(['30']));
t.EvaluateWatches;
t.CheckResults;
t.Clear;
end;
end;
finally
Debugger.RunToNextPause(dcStop);
t.Free;
@ -2883,7 +2894,7 @@ begin
if not TestControlCanTest(ControlTestErrors) then exit;
t := nil;
Src := GetCommonSourceFor('WatchesValuePrg.Pas');
Src := GetCommonSourceFor('WatchesValuePrg.pas');
TestCompile(Src, ExeName);
AssertTrue('Start debugger', Debugger.StartDebugger(AppDir, ExeName));

View File

@ -657,6 +657,128 @@ var
post: byte; // padding, must not be changed
end;
// 7 bytes aftr a qword align
ModifyPackTestByte: packed record
q1: QWord;
p1, p2, p3, p4, p5, p6, pre: byte; // padding, must not be changed
val: byte;
post: byte; // padding, must not be changed
end;
ModifyPackTestWord: packed record
q1: QWord;
p1, p2, p3, p4, p5, p6, pre: byte; // padding, must not be changed
val: word;
post: byte; // padding, must not be changed
end;
ModifyPackTestCardinal: packed record
q1: QWord;
p1, p2, p3, p4, p5, p6, pre: byte; // padding, must not be changed
val: Cardinal;
post: byte; // padding, must not be changed
end;
ModifyPackTestqword: packed record
q1: QWord;
p1, p2, p3, p4, p5, p6, pre: byte; // padding, must not be changed
val: qword;
post: byte; // padding, must not be changed
end;
ModifyPackTestint: packed record
q1: QWord;
p1, p2, p3, p4, p5, p6, pre: byte; // padding, must not be changed
val: integer;
post: byte; // padding, must not be changed
end;
ModifyPackTestInt64: packed record
q1: QWord;
p1, p2, p3, p4, p5, p6, pre: byte; // padding, must not be changed
val: int64;
post: byte; // padding, must not be changed
end;
ModifyPackTestPointer: packed record
q1: QWord;
p1, p2, p3, p4, p5, p6, pre: byte; // padding, must not be changed
val: Pointer;
post: byte; // padding, must not be changed
end;
ModifyPackTestPWord: packed record
q1: QWord;
p1, p2, p3, p4, p5, p6, pre: byte; // padding, must not be changed
val: PWord;
post: byte; // padding, must not be changed
end;
ModifyPackTestBool: packed record
q1: QWord;
p1, p2, p3, p4, p5, p6, pre: byte; // padding, must not be changed
val: Boolean;
post: byte; // padding, must not be changed
end;
ModifyPackTestByteBool: packed record
q1: QWord;
p1, p2, p3, p4, p5, p6, pre: byte; // padding, must not be changed
val: ByteBool;
post: byte; // padding, must not be changed
end;
ModifyPackTestChar: packed record
q1: QWord;
p1, p2, p3, p4, p5, p6, pre: byte; // padding, must not be changed
val: Char;
post: byte; // padding, must not be changed
end;
ModifyPackTestWideChar: packed record
q1: QWord;
p1, p2, p3, p4, p5, p6, pre: byte; // padding, must not be changed
val: WideChar;
post: byte; // padding, must not be changed
end;
ModifyPackTestEnum: packed record
q1: QWord;
p1, p2, p3, p4, p5, p6, pre: byte; // padding, must not be changed
val: TEnum;
post: byte; // padding, must not be changed
end;
ModifyPackTestEnum16: packed record
q1: QWord;
p1, p2, p3, p4, p5, p6, pre: byte; // padding, must not be changed
val: TEnum16;
post: byte; // padding, must not be changed
end;
ModifyPackTestSet: packed record
q1: QWord;
p1, p2, p3, p4, p5, p6, pre: byte; // padding, must not be changed
val: TSet;
post: byte; // padding, must not be changed
end;
ModifyPackTestSet4: packed record
q1: QWord;
p1, p2, p3, p4, p5, p6, pre: byte; // padding, must not be changed
val: TSet4;
post: byte; // padding, must not be changed
end;
ModifyPackTestSet6: packed record
q1: QWord;
p1, p2, p3, p4, p5, p6, pre: byte; // padding, must not be changed
val: TSet6;
post: byte; // padding, must not be changed
end;
ModifyPackTestSet7: packed record
q1: QWord;
p1, p2, p3, p4, p5, p6, pre: byte; // padding, must not be changed
val: TSet7;
post: byte; // padding, must not be changed
end;
ModifyPackTestSet8: packed record
q1: QWord;
p1, p2, p3, p4, p5, p6, pre: byte; // padding, must not be changed
val: TSet8;
post: byte; // padding, must not be changed
end;
ModifyPackTestSRangeSet: packed record
q1: QWord;
p1, p2, p3, p4, p5, p6, pre: byte; // padding, must not be changed
val: TSmallRangeSet;
post: byte; // padding, must not be changed
end;
begin
U8Data1 := #$2267; //#$E2#$89#$A7;
@ -701,6 +823,27 @@ begin
with ModifyTestSet8 do begin pre := qword($9696969696969696); post := $69; val := [E8Val02, E8Val59]; end;
with ModifyTestSRangeSet do begin pre := qword($9696969696969696); post := $69; val := [20,23,28]; end;
with ModifyPackTestByte do begin pre := $96; post := $69; val := $01; end;
with ModifyPackTestWord do begin pre := $96; post := $69; val := $0101; end;
with ModifyPackTestCardinal do begin pre := $96; post := $69; val := $81020102; end;
with ModifyPackTestQword do begin pre := $96; post := $69; val := qword($8102010201020102); end;
with ModifyPackTestInt do begin pre := $96; post := $69; val := -$01030103; end;
with ModifyPackTestInt64 do begin pre := $96; post := $69; val := -$0103010301030103; end;
with ModifyPackTestPointer do begin pre := $96; post := $69; val := pointer(30); end;
with ModifyPackTestPWord do begin pre := $96; post := $69; val := pointer(40); end;
with ModifyPackTestBool do begin pre := $96; post := $69; val := True; end;
with ModifyPackTestByteBool do begin pre := $96; post := $69; val := False; end;
with ModifyPackTestChar do begin pre := $96; post := $69; val := 'B'; end;
with ModifyPackTestWideChar do begin pre := $96; post := $69; val := 'B'; end;
with ModifyPackTestEnum do begin pre := $96; post := $69; val := EnVal2; end;
with ModifyPackTestEnum16 do begin pre := $96; post := $69; val := ExValX2; end;
with ModifyPackTestSet do begin pre := $96; post := $69; val := [EnVal2, EnVal4]; end;
with ModifyPackTestSet4 do begin pre := $96; post := $69; val := [E4Val02, E4Val09]; end;
with ModifyPackTestSet6 do begin pre := $96; post := $69; val := [E6Val02, E6Val1A]; end;
with ModifyPackTestSet7 do begin pre := $96; post := $69; val := [E7Val02, E7Val3A]; end;
with ModifyPackTestSet8 do begin pre := $96; post := $69; val := [E8Val02, E8Val59]; end;
with ModifyPackTestSRangeSet do begin pre := $96; post := $69; val := [20,23,28]; end;
(* use global const / value in "gv" will be overriden... *)
TEST_PREPOCESS(WatchesValuePrgIdent.inc,pre__=gv, {e}={, "//@@=} :=", _pre3_=gc, _BLOCK_=TestAssignGC)