2012-12-26 6 views
4

가능한 중복 :
How do I stop the debugger from stepping into Delphi-supplied units?델파이 디버깅 단지 내 소스

나는 다음과 같은 문제가 : 나는 응용 프로그램을 실행하고 때, 디버거는 델파이의 VCL 소스에 도착합니다. 내가 작성한 코드를 통해 실행되기를 바랍니다.

예 :

temp := nil; 
// Here is breakpoint, after that I wanna go line-by-line, so I'm hitting F7 
while (Head <> nil) do begin 
    if (Head^.Next = nil) then break; 
    Temp := Head^.Next; 
    dispose(Head); // <- here debugger goes into [*] 
end; 
if (Temp <> nil) then dispose(Temp); 

// [*] 
procedure _Dispose(P: Pointer; TypeInfo: Pointer); 
{$IFDEF PUREPASCAL} 
begin 
    _Finalize(P, TypeInfo); 
    FreeMem(P); 
end; 
{$ELSE} 
asm 
     { -> EAX  Pointer to object to be disposed  } 
     {  EDX  Pointer to type info     } 

{$IFDEF ALIGN_STACK} 
     SUB  ESP, 8 
{$ENDIF ALIGN_STACK} 
     PUSH EAX 
     CALL _Finalize 
     POP  EAX 
{$IFDEF ALIGN_STACK} 
     SUB  ESP, 4 
{$ENDIF ALIGN_STACK} 
     CALL _FreeMem 
{$IFDEF ALIGN_STACK} 
     ADD  ESP, 12 
{$ENDIF ALIGN_STACK} 
end; 
{$ENDIF !PUREPASCAL} 

나는 this을 읽고, 그것이 나에게 도움이되지 않았다. 델파이 소스를 제외하고 내 코드 만 디버깅하려면 어떻게해야합니까?

+4

프로젝트 옵션에서 "디버그 .dcus 사용"이 비활성화되어 있습니까? –

+0

당신이 옳은 것처럼 보입니다. 나는 그것을 찾고 있었지만 찾을 수 없었다. –

답변

9

Project->Options 메뉴 항목을보십시오. 컴파일러 옵션으로 가서 "디버그 DCU 사용"이라는 설정이 있어야합니다. 선택하지 않았는지 확인하고 표준 라이브러리 소스로의 추적을 중지해야합니다.

관련 문제