FpGdbmiDebugger: Don't defer skNone to GDB. gdb may crash, and fpdebug may have some data. Issue #0035477

git-svn-id: trunk@61133 -
This commit is contained in:
martin 2019-05-03 21:24:59 +00:00
parent ef247de448
commit 677180e6e5

View File

@ -1072,34 +1072,28 @@ DebugLn(DBG_VERBOSE, [ErrorHandler.ErrorAsString(PasExpr.Error)]);
end; end;
end; end;
case ResValue.Kind of TiSym := ResValue.DbgSymbol;
skNone: begin if (ResValue.Kind = skNone) and (TiSym <> nil) and (TiSym.SymbolType = stType) then begin
// maybe type if GetTypeAsDeclaration(AResText, TiSym) then
TiSym := ResValue.DbgSymbol; AResText := Format('{Type=} %1s', [AResText])
if (TiSym <> nil) and (TiSym.SymbolType = stType) then begin
if GetTypeAsDeclaration(AResText, TiSym) then
AResText := Format('{Type=} %1s', [AResText])
else
if GetTypeName(AResText, TiSym) then
AResText := Format('{Type=} %1s', [AResText])
else
AResText := '{Type=} unknown';
Result := True;
if AWatchValue <> nil then begin
if not IsWatchValueAlive then exit;
AWatchValue.Value := AResText;
AWatchValue.Validity := ddsValid; // TODO ddsError ?
end;
exit;
end;
end;
else else
begin if GetTypeName(AResText, TiSym) then
if defNoTypeInfo in EvalFlags then AResText := Format('{Type=} %1s', [AResText])
FPrettyPrinter.PrintValue(AResText, ResValue, DispFormat, RepeatCnt) else
else AResText := '{Type=} unknown';
FPrettyPrinter.PrintValue(AResText, ATypeInfo, ResValue, DispFormat, RepeatCnt); Result := True;
if AWatchValue <> nil then begin
if not IsWatchValueAlive then exit;
AWatchValue.Value := AResText;
AWatchValue.Validity := ddsValid; // TODO ddsError ?
end; end;
exit;
end
else begin
if defNoTypeInfo in EvalFlags then
FPrettyPrinter.PrintValue(AResText, ResValue, DispFormat, RepeatCnt)
else
FPrettyPrinter.PrintValue(AResText, ATypeInfo, ResValue, DispFormat, RepeatCnt);
end; end;
if not IsWatchValueAlive then exit; if not IsWatchValueAlive then exit;