Debugger: fix internal type for gdb request (eval vs ptype)

git-svn-id: trunk@43380 -
This commit is contained in:
martin 2013-11-06 01:12:30 +00:00
parent 6be8179494
commit 00d03773a0

View File

@ -340,7 +340,7 @@ type
gptrEvalExpr2, gptrEvalExprDeRef2, gptrEvalExprCast2, // used by MaybeString gptrEvalExpr2, gptrEvalExprDeRef2, gptrEvalExprCast2, // used by MaybeString
gptrPtypeCustomAutoCast, gptrPtypeCustomAutoCast2, gptrPtypeCustomAutoCast, gptrPtypeCustomAutoCast2,
gptrInstanceClassName, gptrInstanceClassName,
gptrPtypeCustomEval gptrEvalCustomEval
); );
TGDBTypeProcessRequests = set of TGDBTypeProcessRequest; TGDBTypeProcessRequests = set of TGDBTypeProcessRequest;
@ -2074,7 +2074,7 @@ function TGDBType.RequireRequests(ARequired: TGDBTypeProcessRequests; ACustomDat
gptrPtypeCustomAutoCast, gptrPtypeCustomAutoCast2: gptrPtypeCustomAutoCast, gptrPtypeCustomAutoCast2:
Result := GdbCmdPType + ACustomData; Result := GdbCmdPType + ACustomData;
gptrInstanceClassName: Result := GdbCmdEvaluate+Quote('(^^^char('+FExpression+')^+3)^'); gptrInstanceClassName: Result := GdbCmdEvaluate+Quote('(^^^char('+FExpression+')^+3)^');
gptrPtypeCustomEval: Result := GdbCmdEvaluate+Quote(ACustomData); gptrEvalCustomEval: Result := GdbCmdEvaluate+Quote(ACustomData);
end; end;
end; end;
@ -2097,7 +2097,7 @@ begin
for i := low(TGDBTypeProcessRequest) to high(TGDBTypeProcessRequest) do for i := low(TGDBTypeProcessRequest) to high(TGDBTypeProcessRequest) do
if i in NeededReq then begin if i in NeededReq then begin
AddTypeReq(FReqResults[i], GetReqText(i)); AddTypeReq(FReqResults[i], GetReqText(i));
if i in [gptrEvalExpr, gptrEvalExprDeRef, gptrEvalExprCast, gptrInstanceClassName] if i in [gptrEvalExpr, gptrEvalExprDeRef, gptrEvalExprCast, gptrInstanceClassName, gptrEvalCustomEval]
then FReqResults[i].ReqType := gcrtEvalExpr then FReqResults[i].ReqType := gcrtEvalExpr
else FReqResults[i].ReqType := gcrtPType; else FReqResults[i].ReqType := gcrtPType;
end; end;
@ -2763,10 +2763,10 @@ var
exit; exit;
end; end;
if not RequireRequests([gptrPtypeCustomEval], '^^longint('+FExpression+')[-1]') then exit; if not RequireRequests([gptrEvalCustomEval], '^^longint('+FExpression+')[-1]') then exit;
if not IsReqError(gptrPtypeCustomEval, False) then begin if not IsReqError(gptrEvalCustomEval, False) then begin
FBoundLow := 0; FBoundLow := 0;
FBoundHigh := StrToIntDef(GetParsedFromResult(FReqResults[gptrPtypeCustomEval].Result.GdbDescription, 'value'), -1); FBoundHigh := StrToIntDef(GetParsedFromResult(FReqResults[gptrEvalCustomEval].Result.GdbDescription, 'value'), -1);
FLen := FBoundHigh + 1; FLen := FBoundHigh + 1;
end; end;