DBG, IDE: Improved hint / removed old class workaround, gdbmi now returns classes correct.

git-svn-id: trunk@28752 -
This commit is contained in:
martin 2010-12-18 01:51:35 +00:00
parent 76bc17ce8d
commit 2a313be63a

View File

@ -15577,13 +15577,19 @@ begin
if not DebugBoss.Evaluate(Expression, DebugEval, DBGType) or (DebugEval = '') then
DebugEval := '???';
// deference a pointer - maybe it is a class
if Assigned(DBGType) and (DBGType.Kind in [skPointer, skClass]) then
if Assigned(DBGType) and (DBGType.Kind in [skPointer]) and
not( StringCase(Lowercase(DBGType.TypeName), ['char', 'character', 'ansistring']) in [0..2] )
then
begin
if DBGType.Value.AsPointer <> nil then
begin
if DebugBoss.Evaluate(Expression + '^', DebugEvalDerefer, DBGTypeDerefer) then
begin
if Assigned(DBGTypeDerefer) and (DBGTypeDerefer.Kind = skClass) then
if Assigned(DBGTypeDerefer) and
( (DBGTypeDerefer.Kind <> skPointer) or
(StringCase(Lowercase(DBGTypeDerefer.TypeName), ['char', 'character', 'ansistring']) in [0..2])
)
then
DebugEval := DebugEval + ' = ' + DebugEvalDerefer;
end;
end;