IdeDebugger: Add Mem-Viewer / fix compile with 3.2.2

This commit is contained in:
Martin 2024-09-22 18:11:16 +02:00
parent 041a654351
commit f5e83fae47

View File

@ -9,7 +9,7 @@ uses
StdCtrls, LCLType, Menus, IDEWindowIntf, IDEImagesIntf, StdCtrls, LCLType, Menus, IDEWindowIntf, IDEImagesIntf,
IdeDebuggerWatchValueIntf, SrcEditorIntf, EditorSyntaxHighlighterDef, IdeDebuggerWatchValueIntf, SrcEditorIntf, EditorSyntaxHighlighterDef,
IDEOptEditorIntf, SynEdit, DbgIntfDebuggerBase, LazClasses, LazDebuggerIntf, IDEOptEditorIntf, SynEdit, DbgIntfDebuggerBase, LazClasses, LazDebuggerIntf,
LazDebuggerIntfBaseTypes, DebuggerDlg, BaseDebugManager, Debugger, LazDebuggerIntfBaseTypes, LazDebuggerUtils, DebuggerDlg, BaseDebugManager, Debugger,
IdeDebuggerStringConstants, SynGutterLineNumber, SynEditHighlighter, IdeDebuggerStringConstants, SynGutterLineNumber, SynEditHighlighter,
LazNumEdit; LazNumEdit;
@ -121,7 +121,7 @@ procedure TMemViewDlg.SynGutterLineNumber1FormatLineNumber(
Sender: TSynGutterLineNumber; ALine: integer; out AText: string; Sender: TSynGutterLineNumber; ALine: integer; out AText: string;
const ALineInfo: TSynEditGutterLineInfo); const ALineInfo: TSynEditGutterLineInfo);
begin begin
AText := IntToHex(FCurrentMemAddress + 16 * (ALine-1), FTargetWidth*2); AText := Dec64ToNumb(FCurrentMemAddress + 16 * (ALine-1), FTargetWidth*2, 16);
end; end;
procedure TMemViewDlg.edAddressBaseEditingDone(Sender: TObject); procedure TMemViewDlg.edAddressBaseEditingDone(Sender: TObject);
@ -412,7 +412,7 @@ begin
TSynGutterLineNumber(edMemViewer.Gutter.Parts.ByClass[TSynGutterLineNumber,0]).DigitCount := FTargetWidth * 2; TSynGutterLineNumber(edMemViewer.Gutter.Parts.ByClass[TSynGutterLineNumber,0]).DigitCount := FTargetWidth * 2;
UpdateSynText; UpdateSynText;
StatusBar1.Visible := not IsPlainAddress(FCurrentEditAddrBaseText, dummy); StatusBar1.Visible := not IsPlainAddress(FCurrentEditAddrBaseText, dummy);
StatusBar1.SimpleText := FCurrentEditAddrBaseText + ' @ $' + IntToHex(FCurrentEditAddrBase, FTargetWidth*2); StatusBar1.SimpleText := FCurrentEditAddrBaseText + ' @ $' + Dec64ToNumb(FCurrentEditAddrBase, FTargetWidth*2, 16);
end; end;
end end
else begin else begin
@ -533,13 +533,13 @@ begin
{$PUSH}{$Q-}{$R-} {$PUSH}{$Q-}{$R-}
if AnUseCurrentEditAddr then begin if AnUseCurrentEditAddr then begin
WTxt := '$' + IntToHex(FCurrentEditAddrBase + Offs); WTxt := '$' + Dec64ToNumb(FCurrentEditAddrBase + Offs, 1, 16);
end end
else else
if IsPlainAddress(FCurrentEditAddrBaseText, ANewAddr) then begin if IsPlainAddress(FCurrentEditAddrBaseText, ANewAddr) then begin
FCurrentEditAddrBase := ANewAddr; FCurrentEditAddrBase := ANewAddr;
ANewAddr := ANewAddr + Offs; ANewAddr := ANewAddr + Offs;
WTxt := '$' + IntToHex(ANewAddr); WTxt := '$' + Dec64ToNumb(ANewAddr, 1, 16);
end end
else begin else begin
// if offs > 0 then fetch the extra .... TODO: get only address // if offs > 0 then fetch the extra .... TODO: get only address
@ -617,7 +617,7 @@ begin
ReleaseRefAndNil(FCurrentWatchValue); ReleaseRefAndNil(FCurrentWatchValue);
FWatches.BeginUpdate; FWatches.BeginUpdate;
FWatches.Clear; FWatches.Clear;
AWatch := FWatches.Add('$'+IntToHex(ANewStart)); AWatch := FWatches.Add('$'+Dec64ToNumb(ANewStart, 1, 16));
AWatch.EvaluateFlags := [defMemDump]; AWatch.EvaluateFlags := [defMemDump];
{$PUSH}{$Q-}{$R-} {$PUSH}{$Q-}{$R-}
AWatch.RepeatCount := FCurrentMemAddress - ANewStart; AWatch.RepeatCount := FCurrentMemAddress - ANewStart;
@ -677,7 +677,7 @@ begin
ReleaseRefAndNil(FCurrentWatchValue); ReleaseRefAndNil(FCurrentWatchValue);
FWatches.BeginUpdate; FWatches.BeginUpdate;
FWatches.Clear; FWatches.Clear;
AWatch := FWatches.Add('$'+IntToHex(ANewStart)); AWatch := FWatches.Add('$'+Dec64ToNumb(ANewStart, 1, 16));
AWatch.EvaluateFlags := [defMemDump]; AWatch.EvaluateFlags := [defMemDump];
AWatch.RepeatCount := ACount; AWatch.RepeatCount := ACount;
AWatch.Enabled := True; AWatch.Enabled := True;