Debugger: Fix DisAssemble.CountAfter

(cherry picked from commit 766bc1a877)
This commit is contained in:
Martin 2022-02-09 14:44:30 +01:00
parent e99e9e531a
commit c15332e9c1
3 changed files with 4 additions and 4 deletions

View File

@ -1323,7 +1323,7 @@ type
// Returns "True", if the range is valid, if not a ChangeNotification will be triggered later
function PrepareRange({%H-}AnAddr: TDbgPtr; {%H-}ALinesBefore, {%H-}ALinesAfter: Integer): Boolean; virtual;
property BaseAddr: TDbgPtr read FBaseAddr;
property CountAfter: Integer read FCountAfter;
property CountAfter: Integer read FCountAfter; // Includes the line at BaseAddr, as set by PrepareRange(AnAddr, ...)
property CountBefore: Integer read FCountBefore;
property Entries[AIndex: Integer]: TDisassemblerEntry read GetEntry;
property EntriesPtr[Index: Integer]: PDisassemblerEntry read GetEntryPtr;
@ -5696,7 +5696,7 @@ begin
FCurrentRange := NewRange;
SetBaseAddr(AnAddr);
SetCountBefore(i);
SetCountAfter(NewRange.Count - 1 - i);
SetCountAfter(NewRange.Count - i);
Result := (i >= ALinesBefore) and (CountAfter >= ALinesAfter);
debugln(DBG_DISASSEMBLER, ['INFO: TDBGDisassembler.FindRange: Address found ',AnAddr,' Result=', dbgs(result), ' before=',CountBefore, ' after=', CountAfter, ' wanted-before=',ALinesBefore,' wanted-after=',ALinesAfter,' in map with count=', FEntryRanges.Count]);
finally

View File

@ -4532,7 +4532,7 @@ begin
if i > 0
then dec(i);
ALinesBefore := i;
ALinesAfter := ARange.Count - 1 - i;
ALinesAfter := ARange.Count - i;
Result := True;
exit;
end;

View File

@ -7022,7 +7022,7 @@ end;
function TIDEDisassembler.PrepareRange(AnAddr: TDbgPtr; ALinesBefore,
ALinesAfter: Integer): Boolean;
begin
if (AnAddr = BaseAddr) and (ALinesBefore < CountBefore) and (ALinesAfter < CountAfter)
if (AnAddr = BaseAddr) and (ALinesBefore <= CountBefore) and (ALinesAfter <= CountAfter)
then exit(True);
if FMaster <> nil