검색결과 리스트
글
[JAVA]JDWP(Java™ Debug Wire Protocol)
JDWP(Java™ Debug Wire Protocol)이란 디버거와 디버그를 하고자 하는 자바 가상머신(JVM) 사이의 통신을 위해 사용되는 프로토콜 입니다. JDWP는 같은 디버거가 다음과 같은 작업을 하는 것을 할 수 있도록 해줍니다.
- 같은 컴퓨터 상의 다른 프로세스 내부간의 디버깅
- 원격 컴퓨터 상에서의 디버깅
JDWP는 통신 뿐 아니라 형식과 레이아웃을 상세히 다룬다는 점에서 다른 프로토콜들과 차이점을 가지고 있습니다. JDWP는 간단한 하나의 API를 통하여 여러가지의 전송 방식들을 수용할 수 있도록 만들어져 있습니다. 특정한 전송방식은 각 디버거와 타겟 JVM의 조합이 반드시 지원되지는 않습니다.
아직은 JDWP가 장래엔 더욱 발전할 것으로 보이지만, JDWP는 간단한 실행에 있어서 충분히 실행할 수 있도록 고안되어 있습니다.
안드로이드의 기반인 Dalvik 가상머신 또한 JDWP를 지원합니다. 안드로이드 기기 내의 애플리케이션은 Dalvik 가상머신을 통해 실행되고 있으며 각 애플리케이션은 또한 DDMS를 사용하여 특정한 포트를 통하여 디버깅을 할 수 있습니다. 만약 여러개의 애플리케이션을 디버깅을 할 때, DDMS는 특정한 가상머신의 디버깅 포트를 통한 포트포워딩 기능을 지원합니다. DDMS의 선택 메뉴를 통해 자신이 디버깅 하고자 하는 애플리케이션을 자유롭게 변경할 수 있는 것이지요. DDMS는 포트 8700번을 통해 포트포워딩을 합니다.
실제 안드로이드 기기를 통해 Traceview를 해보면 JDWP 스레드를 확인하실 수 있습니다 JDWP의 Trace까지 추적되는 것 또한 확인하실 수 있습니다.
출저: http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp-spec.html
'프로그래밍 팁' 카테고리의 다른 글
[JAVA] Socket 서버 구현시 안전하게 SocketServer를 종료하는 방법 (3) | 2015.10.14 |
---|---|
[C/C++]thread 조건변수 다루기 - pthread_cond_broadcast() (0) | 2015.09.01 |
[Java] Error 혹은 Debug시 등장하는 method인 access$000 (0) | 2015.08.20 |
[C/C++] typedef 함수 포인터 구현원리 (2) | 2015.04.06 |
[JAVA]윈도 CMD를 통해 자바 Command Line 명령어 활용하기 (0) | 2014.10.04 |