Eclipse 디버거에서 Step Into와 Step Over의 차이점은 무엇입니까?
Java 프로그램의 전체 흐름을 디버깅하고 싶습니다. 일식에서 F5(step into)와 F6(step over) 의 차이점은 무엇입니까 ?
현재 명령 포인터에서 (다음 실행될 라인)에 다음 코드를 고려 f(x);
라인 g()
에 의해 호출 된, g(2)
라인 main()
:
public class testprog {
static void f (int x) {
System.out.println ("num is " + (x+0)); // <- step into
}
static void g (int x) {
-> f(x); // <----------------------------------- current location
f(1); // <----------------------------------- step over
}
public static void main (String args[]) {
g(2);
g(3); // <----------------------------------- step out of
}
}
당신이 단계 인 경우 에 그 시점에서, 당신은로 이동합니다 println()
라인 f()
함수 호출로 스테핑.
이 시점에서 단계를 넘어 가면의 f(1);
행으로 이동 g()
하여 함수 호출을 단계적으로 진행합니다.
디버거의 또 다른 유용한 기능은 스텝 아웃 또는 스텝 리턴 입니다. 이 경우 스텝 리턴은 기본적으로 한 레벨 위로 올라갈 때까지 현재 기능을 통해 실행됩니다. 즉, 단계별 것 f(x)
하고 f(1)
, 그 다음에 결국 호출 기능에게 백업 g(3);
에서 main()
.
Eclipse (적어도 현재 유일하게 편리한 유일한 Europa)는 F5for step into
, F6for step over
및 F7for를 사용 step return
합니다.
코드 줄을 디버깅 할 때 일반적인 시나리오는 다음과 같습니다.
- ( Step Into ) 메소드가 호출 될 예정이며 해당 메소드의 코드로 디버그하려고하므로 다음 단계는 해당 메소드로 이동하여 단계별 디버깅을 계속하는 것입니다.
- ( Step Over ) 메소드가 호출 될 예정이지만이 특정 호출을 디버깅하는 데 관심이 없으므로 디버거가 해당 메소드를 전체 단계로 완전히 실행하기를 원합니다.
- ( Step Return )이 메소드를 단계별로 디버깅 했으므로 디버거가 전체 메소드를 하나의 전체 단계로 리턴 할 때까지 전체 메소드를 실행하려고합니다.
- ( 이력서 ) 디버거가 단계별이 아닌 "정상"실행을 재개하기를 원합니다.
- ( 줄 바꿈 ) 어떻게 도착했는지는 신경 쓰지 않지만 실행이 특정 코드 줄에 도달하면 디버거가 일시적으로 실행을 일시 중지하여 수행 할 작업을 결정할 수 있습니다.
Eclipse에는 다른 고급 디버깅 기능이 있지만 이것이 기본 기본 사항입니다.
또한보십시오
- 무료 비디오 자습서 : Eclipse 및 Java : 디버거 사용
- Eclipse 플랫폼으로 IBM / DeveloperWorks / 디버깅
- IBM / DeveloperWorks / 디버깅의 필수 사항 배우기
step into는 메소드 호출을 파고
step over는 라인을 실행하고 다음 라인으로 이동합니다.
스텝 오버를 사용하여 방법의 세부 사항을 살펴볼 수 없습니다. 현재 줄을 건너 뛰려면 step over를 사용할 수 F6있으며 다음 줄로 이동하려면을 한 번만 누르면됩니다. 분석법에 문제가 있다고 생각 F5되면 세부 정보를 검토하십시오.
Step Into 현재 선택된 행에서 실행될 다음 표현식이 호출되고 호출 된 메소드의 다음 실행 라인에서 실행이 일시 중단됩니다.
Step Over 현재 선택된 라인이 실행되고 다음 실행 라인에서 일시 중단됩니다.
'Programing' 카테고리의 다른 글
ASP.NET 4.5가 웹 서버에 등록되지 않았습니다 (0) | 2020.05.22 |
---|---|
i = (i, ++ i, 1) + 1은 무엇입니까? (0) | 2020.05.22 |
날짜를 기준으로 쿼리를 반환 (0) | 2020.05.22 |
python setup.py가 Travis CI에서 잘못된 명령 'bdist_wheel'을 말하는 이유는 무엇입니까? (0) | 2020.05.22 |
URL : 대시와 밑줄 (0) | 2020.05.22 |