cody: find gdb line: find sub proc

git-svn-id: trunk@44959 -
This commit is contained in:
mattias 2014-05-07 09:38:37 +00:00
parent 63c846780c
commit 3173fc6641

View File

@ -360,6 +360,8 @@ procedure TCodyFindGDBLineDialog.FindGDBIdentifier(GDBIdentifier: string; out
MAIN_TMAINIDE_$__CREATE$TCOMPONENT$$TMAINIDE MAIN_TMAINIDE_$__CREATE$TCOMPONENT$$TMAINIDE
program: program:
P$TESTPROJECT1_DOTEST
P$TESTPROJECT1_DOTEST_SUBTEST
P$TESTSTACKTRACE1_TMAINCLASS_$_TSUBCLASS_$__RAISESOMETHING$ANSISTRING P$TESTSTACKTRACE1_TMAINCLASS_$_TSUBCLASS_$__RAISESOMETHING$ANSISTRING
} }
var var
@ -475,9 +477,18 @@ begin
exit; exit;
end; end;
while (p^='_') and (p[1]='$') and (p[2]='_') and (p[3]='_') do begin repeat
if (p^='_') and (p[1]='$') and (p[2]='_') and (p[3]='_') then begin
// sub identifier is method or member
inc(p,4); inc(p,4);
if p^ in ['A'..'Z'] then begin end else if (p^='_') and (p[1] in ['A'..'Z']) then begin
// sub identifier is proc
inc(p);
end else
break;
if not (p^ in ['A'..'Z']) then begin
break;
end;
// _$__identifier => sub identifier // _$__identifier => sub identifier
ReadIdentifier(CurIdentifier); ReadIdentifier(CurIdentifier);
// find sub identifier // find sub identifier
@ -489,10 +500,7 @@ begin
debugln(['TCodyFindGDBLineDialog.FindGDBIdentifier SubIdentifier="',CurIdentifier,'" found']); debugln(['TCodyFindGDBLineDialog.FindGDBIdentifier SubIdentifier="',CurIdentifier,'" found']);
Node:=SubNode; Node:=SubNode;
end; end;
end else begin until false;
break;
end;
end;
if Node.Desc=ctnProcedure then begin if Node.Desc=ctnProcedure then begin
// proc node => find body // proc node => find body