2010-02-24 3 views
6

이클립스 IDE를 디버깅하는 방법을 배우고 싶습니다. 당시 .NET 개발을 위해 VS를 사용하고 있었을 때, 언제든지 VS를 프로세스에 첨부하고 문제를 추적 할 수 있습니다. 이클립스와 비슷한 것이 있었으면 좋겠지 만 자바 세계의 초보자로서 나는 그것에 대해 모른다.디버그 일식 IDE 자체

iBUS (Ubuntu 9.10)와 함께 실행하면 일식이 자주 중단됩니다. 나는 정말 내 일식을 걸고 그걸 피할 ​​수 있기를 바랍니다 (귀하의 일식이 멈추었을 때 열어 놓은 모든 파일이 닫혔다 고 상상해보십시오).

답변

9

편집하여 eclipse.ini 파일 (-vmargs 아래)를 하단에 다음을 추가 :

-Xdebug 
-Xnoagent 
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 

을 그리고 동일한 버전의 다른 이클립스에, 당신은 당신이 디버깅에 관심이 플러그인을 가져올 수 있습니다. 파일 -> 가져 오기 ... -> 플러그인 개발 -> 플러그인 및 단편. 가져 오기 활성 플랫폼에서 "소스 폴더가있는 프로젝트"로 가져 오기, 다음 탭에서 관심있는 플러그인을 선택하십시오.

적절한 경우 중단 점을 설정하십시오.

그런 다음 디버그 구성에서 "원격 Java 응용 프로그램"을 새로 만듭니다. localhost, port 8000. 소스 탭에 Java 프로젝트를 추가하고 디버그하십시오.

+0

Woot Woot 이것이 내가 찾고 있던 것이었다. –

2

Java 응용 프로그램을 사용하여 현재 진행중인 작업을 확인할 수있는 한 가지 방법은 kill -QUIT입니다. 이렇게하면 JVM이 모든 스레드에 대한 스택 추적을 stdout으로 덤프하게됩니다. 이 작업을 3 번 반복하면 스레드가 잘 움직이지 않는 것을 볼 수 있습니다.

또 다른 시도는 실행 프로세스에 JConsole을 첨부하는 것입니다.

+0

안녕하세요, kill-quit을 보내는 방법을 보여줄 수 있습니까? –

+0

당신은 Ubuntu에 있다고 말했기 때문에, 1) 아마 ps auxw를 사용하여 프로세스 id를 찾으십시오. 2) 쉘에서'kill -QUIT ' – Thilo

1

당시 저는 VS 용 .NET 개발을 사용하고 있었지만 언제든지 VS를 프로세스에 첨부하고 문제를 추적 할 수 있습니다.

원격 디버깅은 Java Platform Debugger Architecture (JPDA)를 사용하여 Java에서 가능합니다. 원격 디버깅이 활성화 된 상태에서 디버깅하려는 응용 프로그램을 시작하기 만하면됩니다. 이 작업을 수행하는 방법과 제거 응용 프로그램을 디버깅하도록 Eclipse를 구성하는 방법을 보여주는 an article입니다.

자바 5부터는 -Xdebug-Xrunjdwp 옵션보다 -agentlib:jdwp 옵션이 Sun VM Invocation Options에 설명 된대로 선택해야합니다.

업데이트 : eclipse.ini의 문서에 언급 된 옵션을 추가 할 수 있어야하므로 이클립스 자바 응용 프로그램입니다. 결코 시도하지 않았다. (필자는 Eclipse 자체를 디버그하고 싶다는 사실을 놓쳤다.)

+0

이 기사는 jar 파일을 디버깅하는 방법을 알려준다. 하지만 이클립스 (원시 형 실행 파일처럼 보입니까?)를 발견했습니다. 디버깅 메시지를 포트에 게시하도록 eclipse에게 어떻게 알릴 수 있습니까? –

0

기본적으로 Java 응용 프로그램 (예 : Eclipse)을 디버깅하는 두 가지 방법이 있습니다. JConsole을 사용할 수는 있지만 많은 세부 사항을 제공하지는 않습니다. JConsole을 첨부하려면 원격 디버깅을 활성화해야합니다. Eclipse 실행 파일 바로 옆에있는 eclipse.ini 파일에 작성할 수있는 JVM 인수가 필요합니다.

또 다른 옵션은 Eclipse에서 런타임 워크 벤치를 시작하는 것입니다. 이것은 자신의 플러그인을 테스트하는 데 사용되지만 Eclipse 플러그인이 동일하기 때문에 Eclipse 애플리케이션으로 디버그 세션을 시작할 수 있습니다. 이렇게하려면 작업 영역에 최소한 하나 이상의 플러그인이 있어야합니다 (예 : 새로운 hello world 플러그인 프로젝트 작성). 그러면이 플러그인을 Eclipse 애플리케이션으로 디버그 할 수 있습니다.

2

여기에 a thread about finding cause of a freezing Eclipse이 있습니다.

-consolelog 옵션으로 시작하는 솔루션 중 하나는 입니다. 이는 실제 디버깅을하기 전에 진행중인 작업을 간략하게 살펴볼 때 유용 할 수 있습니다.