질문처럼 한 프로시져 안에 루프를 여러번 돌립니다
begin
....
while not eof do begin
...
...
Next;
end;
while not eof do begin
...
...
while not eof do begin
....
.....
Next;
end;
Next;
end;
while not eof do begin
...
...
Next;
end;
end;
위처럼 여러번의 While 문이 있는데 각 While문의 루프는 수백번 되풀이 됩니다. 그렇다면 무한루프가 걸렸을때 어떤 While문에서 걸렸는지는 어떻게 알 수 있나요? 디버그를 하면서 알 수야 있겠지만은요... 수백번 루프의 디버깅을 계속 할 수도 없고... 무신 방법이 있을까요?...
감사합니다.
네... 디버거로도 충분히 해결 가능합니다.
브레이크 포인트를 설정할 때, 특정 변수의 값이 사용자가 설정한 값이 되었을 때만, 멈추게 할 수 있는 기능이 있거든요... 그러니까, 위의 루프에서 임의의 임시 변수를 하나 만들어서 값을 1씩 증가시키고, 그곳에 브레이크 포인트를 거는데, 그 변수값이 원하는 만큼 수행된 다음에 멈추도록 설정(Condition)하면 됩니다.
프로그램 실행후 멈췄을 때, 다시 그 값을 변경해서 또 다음번 알아보고, 이런식으로 하면, 매우 편리하게 루프를 디버깅 할 수 있습니다.
브레이크 포인트를 설정하는 방법은 매우 다양합니다. 이를 설정하기 위해서는 델파이의 View/Debug Windows/Breakpoints 창을 여시거나, 직접 단축키로 Ctrl+Alt+B로 연 후에, 해당 브레이크 포인트에 대한 등록정보를 설정하면 됩니다. ^^;