2008-09-17 6 views

답변

4

저는 어제 처음으로 jdb를 사용했고 결과에 정말 만족합니다. 당신은 내 랩톱에서 이클립스로 프로그램을 한 다음, VM에 배치하여 전체가 완전히 작동하는지 확인합니다. 아주 때론, 나는 커맨드 라인처럼 독립 실행 형으로 실행되는 것에 대해 작업해야 할 것입니다. 이러한 것들은 때때로 디버깅을 필요로합니다.

VM에 이클립스를 설치하는 데 어려움을 겪고 싶지 않기 때문에 항상 문제가있었습니다 (아직 느린 편입니다!). 그러나 쉽게 얻을 수있는 방법을 모르겠습니다. 실행이 끝나기 전에 명령 줄 실행 클래스에 연결하십시오.

구조에 jdb! 그것은 치료법을 작고 기능적이며 거의 맨손으로 처리합니다 ... 이것은 당신이 도구를 적용하는 것보다 더 마음을 쓰도록 강제합니다 (제가 말한 것처럼 here).

참조 번호 (solaris, windows, java 1.5- 나는 모두 거의 같다고 생각합니다.)를 작성하고 두 번째 화면에서 소스 코드를 열어보고 탐색 할 수있게하십시오. 두 번째 화면이 있기를 바랍니다. 그렇지 않으면 많이 탭 오버가됩니다.

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=<port> <class> 

당신은 JDB하여이 프로세스에 연결할 수 있습니다 :

+0

codingme에서 다른 대답으로 언급했듯이 JPDA (http://docs.oracle.com/javase/1.5)를 사용할 수 있습니다. 0/docs/guide/jpda/conninv.html) 명령 줄 스위치를 사용하여 Java VM이 디버거 연결을 수신하도록합니다. 디버거가 연결될 때까지 suspend = y를 실행하여 디버거가 연결되기 전에 프로그램이 종료되지 않도록하십시오. 방화벽 구성 또는 SSH 터널 설정과 결합 된 포트 번호를 지정하여 네트워크를 통해 원격 VM에 연결할 수 있습니다. 예 : -agentlib : jdwp = transport = dt_socket, server = y, address = 5005, suspend = y – Neek

-1

Eclipse에서 원격 디버깅 도구를 사용하는 것을 선호합니다.

-3

JDB는 사용하기가 매우 어렵습니다. System.outs을 배치하거나 IDE 디버거를 사용하면 더 나은 결과를 얻을 수 있습니다. 더 흥미로운 기능 (예 : 추적 스레드, 힙 크기 등)을 얻으려면 JConsole 도구를 사용하여 그래픽으로 정보를 얻을 수 있습니다.

+0

JDB 어떤 디버거로 사용하기 쉽고,이 피드백은 비생산적이다 . 또한 JConsole에서는 변수를보고, 중단 점을 설정하고, 예외를 중단하는 등의 작업을 허용하지 않습니다. –

2

이 프로그램이 다음 명령에 의해 시작됩니다 가정

jdb -attach <port>