2010-07-06 3 views
3

이클립스를 통해 스택을 추적하는 방법? 내 코드에서 파일을 업로드하려고 할 때 응용 프로그램에서 파일 업로드 작업을 실행할 때 오류 메시지없이 중단됩니다. 디버깅을 시도했지만 많은 도움이되지 못했습니다.일식 스택 추적

답변

1

이클립스 디버거를 사용하여 단계별 실행을 권장합니다. 이를 통해 단계별로 자동으로 스택 추적을 제공합니다.

"step into"(F5) 기능이 가장 유용하다는 것을 알았습니다.이 기능을 사용하면 재귀 적으로 함수로 내려가 상황을 탐색 할 수 있습니다.

파일 업로드 코드의 시작 부분에 중단 점을 설정하여 거의 정확한 위치에서 스테핑을 시작할 수 있습니다. 내 이클립스 버전에서 스택 추적은 적절한 스레드 아래 왼쪽 상단의 "디버그"창에 나타납니다.

2

Eclipse에서 Application을 실행 중이지만 Glassfish 또는 Tomcat과 같은 Java EE 컨테이너 내부에서 예외 객체에 대한 printStackTrace() 메소드를 호출하면 (잡히면) Eclipse의 콘솔 창에 스택 추적이 표시됩니다 . 귀하의 경우, 먼저 예외가 던져지고 있는지 알아야합니다. 런타임시에만 Stacktrace를 추론하기 위해 Exception 객체를 생성하지 않는 것이 좋습니다.

물론 이것은 제작 품질 코드를 작성할 때 좋지 않으며 log4j, jul 또는 slf4j와 같은 로깅 프레임 워크를 사용하여 응용 프로그램 동작을 추적해야합니다.

푸시가 발생하면 서블릿 컨테이너의 디버깅을 활성화합니다 (컨테이너마다 다릅니다). 따라서 응용 프로그램 이외에 컨테이너 자체의 동작을 추적 할 수 있습니다.

2
  • 서버에서 시작된 Glassfish와 동일한 사용자로 JDK bin 폴더에서 "jvisualvm"을 시작하십시오.
  • "로컬"에서 해당 항목을 두 번 클릭하여 Glassfish 프로세스에 연결하십시오.
  • 스레드 패널에서 스레드 덤프 단추를 클릭하십시오.
  • 스택 추적을 클립 보드로 복사하십시오.
  • Eclipse에서 콘솔 추적기 콘솔보기에 스택 추적을 붙여 넣으십시오.