eclipse를 사용해 자바 원격 디버깅하는 방법에 대해서 설명한다.
영어에 거부감이 없다면 여기를 참고해도 좋다.
http://www.eclipsezone.com/eclipse/forums/t53459.html
내 경우에는 원격 서버(linux)에서 돌릴 프로그램이 local에서 돌지 않기 때문에 remote debugging을 진행했다.
linux에서만 도는 c library를 window에서는 돌릴 수 없기 때문에 ;;;
이런 경우 외에도 로컬이 아닌 원격장비에서만 일어나는 에러를 잡기 위해서 진행해 볼 수도 있다.
만약 test.java 파일을 컴파일 해서 test.class가 생성되었다면 실행은 아래와 같이 할 것이다.
서버 (10.8.34.1)
$> java test
거기에 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044 옵션을 붙여 주면 된다.
그럼 요렇게 실행하면 되겠지!
서버 (10.8.32.1)
$> java test -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044
여기서 transport=dt_socket은 소켓을 이용해 address=1044 1044번 port를 사용하여 debugging하게 될 것을 알려 준다.
만약 suspend=y로 해놓으면 로컬에서 디버깅하기 위해 연결하기 전까지 jvm이 suspend 모드에서 기다리고 연결되면 진행된다.
거꾸로 suspend=n이라면 로컬에서 debug로 연결되기 전에도 프로그램이 시작 된다.
원격 서버에서 위와 같이 시작을 시켜 놓고 eclipse에서는 아래와 같이 Run -> Debug Configurations로 들어간다.
왼쪽 창에서 화면에서 Java Application -> Remote Java Application을 선택한다.
Project 명
Host 주소
Port 번호 : 아까 옵션에 address=1044로 주었던 1044다.
이렇게 적어주고 Debug를 시작하면 remote에서 실행되는 프로그램에 로컬 eclipse로 debug를 진행할 수 있다.
로컬에서 하듯이 원하는 위치에 break point를 찍고 천천히 debugging 해보시라~~!
'Programing > Java' 카테고리의 다른 글
java profiling (자바 프로파일링) YourKit 사용 방법 (0) | 2011.09.16 |
---|---|
Java pipeline framework (자바 파이프라이닝 처리) (0) | 2011.09.01 |
java multi-thread, thread pool 사용 (0) | 2011.07.29 |
Mysql Connection pooling (0) | 2011.06.24 |
JNDI (0) | 2011.06.23 |