Debugger: fixes for Inspect dlg.

This commit is contained in:
Martin 2022-06-29 00:53:52 +02:00
parent b54ac53cca
commit 563d7e2d6f

View File

@ -347,6 +347,11 @@ begin
btnColVisibility.Enabled := False; btnColVisibility.Enabled := False;
Res := FCurrentResData; Res := FCurrentResData;
if Res = nil then begin
TimerClearData.Enabled := True;
exit;
end;
StatusBar1.SimpleText:=ShortenedExpression+': '+Res.TypeName + ' Len: ' + IntToStr(Res.ArrayLength); StatusBar1.SimpleText:=ShortenedExpression+': '+Res.TypeName + ' Len: ' + IntToStr(Res.ArrayLength);
LowBnd := Res.LowBound; LowBnd := Res.LowBound;
@ -569,6 +574,8 @@ end;
procedure TIDEInspectDlg.TimerClearDataTimer(Sender: TObject); procedure TIDEInspectDlg.TimerClearDataTimer(Sender: TObject);
begin begin
if not TimerClearData.Enabled then
exit;
TimerClearData.Enabled := False; TimerClearData.Enabled := False;
Clear; Clear;
end; end;
@ -1351,14 +1358,14 @@ begin
TimerClearData.Enabled := False; TimerClearData.Enabled := False;
FCurrentResData := nil;
FAlternateExpression := ''; FAlternateExpression := '';
FExpressionWasEvaluated := True; FExpressionWasEvaluated := True;
FCurrentResData := FCurrentWatchValue.ResultData;
FHumanReadable := FWatchPrinter.PrintWatchValue(FCurrentResData, wdfStructure); FHumanReadable := FWatchPrinter.PrintWatchValue(FCurrentResData, wdfStructure);
if FCurrentWatchValue.Validity = ddsValid then begin if FCurrentWatchValue.Validity = ddsValid then begin
ArrayNavigationBar1.Visible := False;
if FCurrentWatchValue.TypeInfo <> nil then begin if FCurrentWatchValue.TypeInfo <> nil then begin
ArrayNavigationBar1.Visible := False;
case FCurrentWatchValue.TypeInfo.Kind of case FCurrentWatchValue.TypeInfo.Kind of
skClass, skObject, skInterface: InspectClass(); skClass, skObject, skInterface: InspectClass();
skRecord: InspectRecord(); skRecord: InspectRecord();
@ -1383,7 +1390,6 @@ begin
end; end;
end end
else begin else begin
FCurrentResData := FCurrentWatchValue.ResultData;
// resultdata // resultdata
if (FCurrentResData.ValueKind = rdkStruct) and if (FCurrentResData.ValueKind = rdkStruct) and
@ -1457,6 +1463,8 @@ end;
procedure TIDEInspectDlg.ArrayNavChanged(Sender: TArrayNavigationBar; procedure TIDEInspectDlg.ArrayNavChanged(Sender: TArrayNavigationBar;
AValue: Int64); AValue: Int64);
begin begin
if (FCurrentResData = nil) or (FCurrentResData.ValueKind <> rdkArray) then
exit;
InspectResDataArray; InspectResDataArray;
end; end;