Today I Learned/Java
[Java] Java Remote Debugging 자바 원격 디버깅 #2 (JDWP 디버깅 옵션)
by dbs_
2025. 7. 24.
JDWP 디버깅 옵션
1. 디버깅 JVM 방식 (server)
모드 |
설명 |
server=y |
JVM이 디버거 요청을 수신하는 서버 역할 (일반적으로 많이 사용) |
server=n |
JVM이 디버거(IDE)로 접속을 시도함 (거의 사용 안 함) |
2. JVM 실행 대기 여부 (suspend)
모드 |
설명 |
suspend=y |
디버거가 연결되기 전까지 JVM 실행을 멈춤 (초기 진입 디버깅 시 사용) |
suspend=n |
디버거 연결 여부와 무관하게 JVM 실행 (운영 환경에서 일반적으로 사용) |
3. 디버깅 포트 지정 (address)
값 예시 |
설명 |
5005 |
5005 포트에서 디버거 연결 수신 (localhost 기본 바인딩) |
*:5005 |
모든 IP에서 연결 수신 허용 (JDK 9 이상) |
127.0.0.1:5005 |
로컬 루프백 전용으로 바인딩 (보안 강화 시 사용) |
4. 전송 방식 (transport)
값 |
설명 |
dt_socket |
TCP 소켓 방식으로 디버거 연결 (가장 일반적) |
dt_shmem |
Windows 전용의 shared memory 방식 (속도 빠름, 잘 사용 안 함) |
5. 엄격 모드 (strict)
값 |
설명 |
strict=y |
사소한 오류도 예외로 처리하도록 엄격하게 검사 |
6. 예외 시 자동 중단 (onthrow, onuncaught)
옵션 |
설명 |
onthrow=y |
예외가 throw 될 때 자동으로 중단점 설정 |
onuncaught=y |
uncaught 예외 발생 시 디버깅 자동 정지 |
7. MUTF-8 문자열 인코딩 (mutf8)
값 |
설명 |
y |
문자열 인코딩을 MUTF-8로 설정 (디버거 툴 호환성 고려 시 사용) |
보통 실무에서는 1~3번 옵션을 많이 사용하는 것 같다. 그래도 이게 뭔지는 알아두면 좋으니 이번 기회에 정리를 해보았다.