머리말
매일 이동 벽돌, 매일 짓밟 구덩이는 천천히 자신의 개발 기술의 더 많은 질문을 그에게 성공을 축적합니다.
원격 디버깅 소개
매우 다른 개발하기 위해 클라이언트와 백 엔드부터 개발에 종사, 서버 코드에서 허점을 찾을 것입니다.
1, 예외 처리, 높은 로그 수집 요구. 휴대 전화의 위치로 서버 더하지 운영 문제에 대한 문제 2. 분석.
- 위치 서버의 코드에서 허점 , 우리는 동적 정보를 볼 것으로 예상, 여전히 특정 제한이 예외 정보 및 로그를보고에 의존하는 (예를 들어, 우리는 어떤 종류의 실제 런타임 클래스로드를보고 싶어?).
- 물론, 우리는 또한 서버에서 사용할 수있는
Java
디버깅 도구,하지만 종종 더 환경 적 제약 생산 , 모든 디버깅 도구를 사용할 수 있습니다 (보안 또는 기타 특성을).
이것은 여러 가지 방법으로, 필요 원격 디버깅도 중단 점 디버깅 서버에서 코드를이 문서는 IDEA 중단 점 디버깅과 함께 원격 디버깅 및 개발 도구를 수행하는 방법을 설명합니다.
관련 정보
- 원격 디버깅은 일부 서버에 직접 코드를 디버깅 할 수있는 대답, 서버에서 사전 구성이 필요합니다.
- 디버그 모드는 성능에 영향을, 심지어 보안은 항상 디버그 모드를 설정하지, 영향을 받게됩니다.
- 디버그 모드 실드 JVM 자체의 작동을 최적화하기 때문에 JVM의 성능에 영향을 줄 수 있습니다.
- 인트라넷 추천, 테스트 환경이 노출 네트워크를 사용하지 않는 것이 좋습니다, 잠재적 인 보안 위협이있을 것이다.
열기 자바 원격 디버깅 모드
- JPDA는 (자바 플랫폼 디버깅 아키텍처) JDWP로 (자바 디버그 와이어 프로토콜) 프로토콜 디버깅 부분 일련의 API를 제공한다.
- JDWP 프로토콜 원격 디버깅 자바 애플리케이션의 디버깅 프로세스와 통신하기위한 프로그램 공정이다.
디버그 모드 켜기
- JVM을 작동 매개 변수에서 두 개의 JVM 옵션의 사용을 볼 수 있습니다, 다음 명령을 추가
-Xdebug
하고-Xrunjdwp
,-Xdebug
디버깅,-Xrunjdwp
구성 JDWP 계약을, 일부 필요한 매개 변수가 있습니다.
-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y
复制代码
- JDWP 프로토콜 매개 변수
dt_socket
: 구성 소켓 통신 포트.dt_shmem
: 원격 디버깅이 옵션이 필요하지 않도록 상호 작용하는 공유 메모리를 사용 신청 과정 및 디버그 프로세스 따라서, 디버거 및 응용 프로그램은 단일 시스템에 있어야합니다.
- 다른 매개 변수
suspend
:이 매개 변수는 디버깅 프로세스, 응용 프로그램 프로세스 전에 연결 응용 프로그램 프로세스를 일시 중단할지 여부를 지정하는 데 사용됩니다, 기본값은 Y입니다. 당신이 응용 프로그램 초기화 로직을 디버깅 할 경우이 옵션을 활성화해야합니다.
실제 운동
테스트 환경
- 그것은 시작 스크립트를 사용하여 Java 응용 프로그램의 상단에 서버를 달렸다.
- IDEA 2019년 1월 2일
단계
- 첫째, JVM 매개 변수 정보를 볼
ps -ef | grep java
复制代码
- 시작 스크립트에서 디버그 옵션을 추가하고, Java 응용 프로그램을 다시 시작합니다.
IDEA 원격 디버깅 구성 단계
- 구성 편집 ...
- 원격 선택하고 해당 IP 주소와 포트를 입력합니다.
- 디버그를 클릭하고 디버깅을 시작! ! ! .
발문
이 문서에서는 기본 원격 디버깅의 개념뿐만 아니라 방법과 같은 원격 디버깅을 완료하기 위해 IDE를 결합을 소개합니다. 시도하지 불구하고 톰캣은 JDWP 계약 원격으로 코드를 디버깅 할 수 있습니다.