DBG: Fixed issue with variables from parent-nested-frames showing with prefix "error:"

git-svn-id: trunk@32437 -
This commit is contained in:
martin 2011-09-20 18:22:56 +00:00
parent 876951bceb
commit 1df02ca4fc

View File

@ -11349,43 +11349,50 @@ var
ResultList.Free; ResultList.Free;
if Result if Result
then FixUpResult(AnExpression); then begin
FixUpResult(AnExpression);
FValidity := ddsValid;
end;
end; end;
wdfChar: wdfChar:
begin begin
Result := PrepareExpr(AnExpression); Result := PrepareExpr(AnExpression);
if not Result if not Result
then exit; then exit;
FValidity := ddsValid;
FTextValue := GetChar(AnExpression, []); FTextValue := GetChar(AnExpression, []);
if LastExecResult.State = dsError if LastExecResult.State = dsError
then FTextValue := '<error>'; then ParseLastError;
end; end;
wdfString: wdfString:
begin begin
Result := PrepareExpr(AnExpression); Result := PrepareExpr(AnExpression);
if not Result if not Result
then exit; then exit;
FValidity := ddsValid;
FTextValue := GetText(AnExpression, []); // GetText takes Addr FTextValue := GetText(AnExpression, []); // GetText takes Addr
if LastExecResult.State = dsError if LastExecResult.State = dsError
then FTextValue := '<error>'; then ParseLastError;
end; end;
wdfDecimal: wdfDecimal:
begin begin
Result := PrepareExpr(AnExpression, True); Result := PrepareExpr(AnExpression, True);
if not Result if not Result
then exit; then exit;
FValidity := ddsValid;
FTextValue := IntToStr(Int64(GetPtrValue(AnExpression, [], True))); FTextValue := IntToStr(Int64(GetPtrValue(AnExpression, [], True)));
if LastExecResult.State = dsError if LastExecResult.State = dsError
then FTextValue := '<error>'; then ParseLastError;
end; end;
wdfUnsigned: wdfUnsigned:
begin begin
Result := PrepareExpr(AnExpression, True); Result := PrepareExpr(AnExpression, True);
if not Result if not Result
then exit; then exit;
FValidity := ddsValid;
FTextValue := IntToStr(GetPtrValue(AnExpression, [], True)); FTextValue := IntToStr(GetPtrValue(AnExpression, [], True));
if LastExecResult.State = dsError if LastExecResult.State = dsError
then FTextValue := '<error>'; then ParseLastError;
end; end;
//wdfFloat: //wdfFloat:
// begin // begin
@ -11402,10 +11409,11 @@ var
if not Result if not Result
then exit; then exit;
FTextValue := IntToHex(GetPtrValue(AnExpression, [], True), 2); FTextValue := IntToHex(GetPtrValue(AnExpression, [], True), 2);
FValidity := ddsValid;
if length(FTextValue) mod 2 = 1 if length(FTextValue) mod 2 = 1
then FTextValue := '0'+FTextValue; // make it an even number of digets then FTextValue := '0'+FTextValue; // make it an even number of digets
if LastExecResult.State = dsError if LastExecResult.State = dsError
then FTextValue := '<error>'; then ParseLastError;
end; end;
wdfPointer: wdfPointer:
begin begin
@ -11413,6 +11421,7 @@ var
if not Result if not Result
then exit; then exit;
FTextValue := PascalizePointer('0x' + IntToHex(GetPtrValue(AnExpression, [], True), TargetInfo^.TargetPtrSize*2)); FTextValue := PascalizePointer('0x' + IntToHex(GetPtrValue(AnExpression, [], True), TargetInfo^.TargetPtrSize*2));
FValidity := ddsValid;
if LastExecResult.State = dsError if LastExecResult.State = dsError
then FTextValue := '<error>'; then FTextValue := '<error>';
end; end;
@ -11440,6 +11449,7 @@ var
exit; exit;
end; end;
MemDump := TGDBMIMemoryDumpResultList.Create(R); MemDump := TGDBMIMemoryDumpResultList.Create(R);
FValidity := ddsValid;
FTextValue := MemDump.AsText(0, MemDump.Count, TargetInfo^.TargetPtrSize*2); FTextValue := MemDump.AsText(0, MemDump.Count, TargetInfo^.TargetPtrSize*2);
MemDump.Free; MemDump.Free;
end; end;
@ -11456,6 +11466,7 @@ var
if FTypeInfo.HasExprEvaluatedAsText then begin if FTypeInfo.HasExprEvaluatedAsText then begin
FTextValue := FTypeInfo.ExprEvaluatedAsText; FTextValue := FTypeInfo.ExprEvaluatedAsText;
FTextValue := DeleteEscapeChars(FTextValue); FTextValue := DeleteEscapeChars(FTextValue);
FValidity := ddsValid;
Result := True; Result := True;
FixUpResult(AnExpression, FTypeInfo); FixUpResult(AnExpression, FTypeInfo);
exit; exit;