문제

Bea Weblogic Server v9.2 런타임 환경을 통해 Eclipse 내에서 웹 로그 애플리케이션을 시작하고 있습니다. 이것이 명령 줄에서 곧장 실행 중이면 스레드 덤프를 강제하기 위해 CTRL 브레이크를 수행합니다. 일식에서 할 수있는 방법이 있습니까?

도움이 되었습니까?

해결책

실제로 (So The Swork를 가리려면 vonc에게 감사합니다), Dustin은 그의 메시지에 대한 의견으로 Jstack.

Eclipse에서 약간의 Java 응용 프로그램 (GUI 포함)을 실행했습니다. Windows의 프로세스 관리자와 PID의 7088에서 관련 javaw.exe를 볼 수 있습니다 (물론 UNIX에서는 더 간단합니다).

명령 프롬프트에 입력하면 jstack 7088, 나는 스레드 당 원하는 스택 덤프가 있습니다.
시원한.

Eclipse에서 직접 그렇게 할 수 있다면 더 나을 것이지만 이미 유용합니다.

다른 팁

디버그 모드에있을 때 할 수 있습니다. 디버그 관점에서 디버그보기로 이동하여 시작한 프로세스를 클릭하고 일시 정지를 클릭하면 모든 프로세스의 그래픽 스택이 표시됩니다.

참고 : 원격 디버깅을 사용할 때도 작동하며 Eclipse에서 Weblogic을 시작할 필요가 없으며 자체적으로 시작하고 디버깅 포트를 열고 "원격 Java 응용 프로그램 디버그 구성"을 만들 수 있습니다.

일식 위키 : 교착 상태를보고하는 방법 Eclipse에서 스레드 덤프 생성의 가능한 모든 옵션을 나열합니다. 구체적인 상황에 따라 하나 또는 다른 하나는 더 잘 작동 할 수 있습니다.

스택 트레이스 시도 할 수있는 또 다른 옵션입니다. 기능에서 :

a로 실행되는 Java 프로세스 용 스레드 덤프 서비스 (예 : Tomcat와 같은)는 Javaw.exe, 다른 프로세스 내부에 포함 된 브라우저 또는 JVMS 내부에서 실행되는 애플릿. StackTrace는 Windows, Linux 및 Mac OS X에서 작동합니다.

UI 기반 솔루션을 선호하는 경우 VisualVM 좋은 선택 일 수 있습니다. (이점은 또한 JDK와 함께 배포된다는 것입니다)

VisualVM에서 스레드 덤프를 가져 오려면 :

  1. 프로세스 (원격 또는 로컬) 및
  2. 가십시오 Threads (탭) -> Thread Dump (단추)

javaw.exe 대신 java.exe로 Eclipse를 시작하려고 했습니까? eclipse.ini) ?

다음과 같이 필요한 콘솔을 줄 수 있습니다. 이 버그 그리고에서 이 메시지.

다른 아이디어 (Java 옵션의 관점에서)는 이것에서 파생 될 수 있습니다. 다른 질문.

jvisualvm을 통해 연결하고 스레드 덤프를 얻을 수 있습니다. 응용 프로그램 트리에서 응용 프로그램 노드를 마우스 오른쪽 버튼으로 클릭하고 "스레드 덤프"를 선택하십시오.

Linux에서는 적어도 당신은 할 수 있습니다 ps -ef | grep java PID를 얻은 다음 a kill -3 PID 그리고 그것은 이클립스 콘솔에 그것을 출력합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top