Java 응용프로그램 디버깅

Java™ 프로그램을 디버그하기 위해 운영 체제용 SDK 에서 제공하는 JPDA (Java Platform Debugger Architecture) 를 사용하여 통신하는 JDB (Java Debugger) 애플리케이션 또는 기타 디버거를 사용할 수 있습니다.

Java를 사용한 문제점 진단에 대한 정보는 문제점 해결 및 지원에서 찾을 수 있습니다.

참고: AIX® 시스템에서 SDK 에는 AIX 디버거, DBX용 플러그인이 포함되어 있습니다. DBX 플러그인은 SDK의 일부로 제공되지만 지원되지는 않습니다. 그러나 IBM® 은 버그 보고서를 승인합니다.

Java Debugger

JDB는 SDK에 포함되어 있습니다. 이 디버거는 jdb 명령을 통해 실행되며 JPDA를 사용하여 JVM에 접속합니다.

Java 응용프로그램을 디버그하려면 다음을 수행하십시오.
  1. 다음 옵션으로 JVM을 시작하십시오.
    • Windows 시스템:
      java -agentlib:jdwp=transport=dt_shmem,server=y,address=<port> <class>
    • 기타 시스템:
      java -agentlib:jdwp=transport=dt_socket,server=y,address=<port> <class>

    JVM이 시작되지만 Java 애플리케이션을 시작하기 전에 실행을 일시중단합니다.

  2. 별도의 세션에서 다음과 같이 디버거를 JVM에 첨부할 수 있습니다.
    jdb -attach <port>
    디버거가 JVM에 첨부되고 이제 다양한 명령을 실행하여 Java 애플리케이션을 검사하고 제어할 수 있습니다. 예를 들어, Java 애플리케이션을 시작하려면 run 를 입력하십시오.
원격 워크스테이션에서 실행 중인 Java 응용프로그램을 디버그하려면 다음을 수행하십시오.
JPDA는 TCP/IP 소켓을 사용하여 원격 JVM에 연결합니다.
  1. 다음 옵션으로 JVM을 시작하십시오.
    • Windows 시스템:
      java -agentlib:jdwp=transport=dt_shmem,server=y,address=<port> <class>
    • 기타 시스템:
      java -agentlib:jdwp=transport=dt_socket,server=y,address=<port> <class>

    JVM이 시작되지만 Java 애플리케이션을 시작하기 전에 실행을 일시중단합니다.

  2. 디버거를 원격 JVM에 첨부하십시오.
    • Windows 시스템:
      jdb -connect com.sun.jdi.SocketAttach:hostname=<host>,port=<port>
    • 기타 시스템:
      jdb -attach <host>:<port>
자세한 정보를 확인하려면 다음 작업을 수행하십시오.
  • JDB 옵션에 대한 자세한 정보를 확인하려면 jdb -help를 입력하십시오.
  • JDB 명령에 대한 자세한 정보를 보려면 다음을 수행하십시오.
    1. jdb 유형
    2. jdb 프롬프트에서 help를 입력하십시오.
  • JDB 및 JPDA와 해당 사용법에 대한 자세한 정보는 다음 항목을 참조하십시오.