[현상] 일일 원격 디버깅

머리말

매일 이동 벽돌, 매일 짓밟 구덩이는 천천히 자신의 개발 기술의 더 많은 질문을 그에게 성공을 축적합니다.

원격 디버깅 소개

매우 다른 개발하기 위해 클라이언트와 백 엔드부터 개발에 종사, 서버 코드에서 허점을 찾을 것입니다.

1, 예외 처리, 높은 로그 수집 요구. 휴대 전화의 위치로 서버 더하지 운영 문제에 대한 문제 2. 분석.

  • 위치 서버의 코드에서 허점 , 우리는 동적 정보를 볼 것으로 예상, 여전히 특정 제한이 예외 정보 및 로그를보고에 의존하는 (예를 들어, 우리는 어떤 종류의 실제 런타임 클래스로드를보고 싶어?).
  • 물론, 우리는 또한 서버에서 사용할 수있는 Java디버깅 도구,하지만 종종 더 환경 적 제약 생산 , 모든 디버깅 도구를 사용할 수 있습니다 (보안 또는 기타 특성을).

이것은 여러 가지 방법으로, 필요 원격 디버깅도 중단 점 디버깅 서버에서 코드를이 문서는 IDEA 중단 점 디버깅과 함께 원격 디버깅 및 개발 도구를 수행하는 방법을 설명합니다.

관련 정보

  1. 원격 디버깅은 일부 서버에 직접 코드를 디버깅 할 수있는 대답, 서버에서 사전 구성이 필요합니다.
  2. 디버그 모드는 성능에 영향을, 심지어 보안은 항상 디버그 모드를 설정하지, 영향을 받게됩니다.
  3. 디버그 모드 실드 JVM 자체의 작동을 최적화하기 때문에 JVM의 성능에 영향을 줄 수 있습니다.
  4. 인트라넷 추천, 테스트 환경이 노출 네트워크를 사용하지 않는 것이 좋습니다, 잠재적 인 보안 위협이있을 것이다.

열기 자바 원격 디버깅 모드

  • 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 원격 디버깅 구성 단계

  1. 구성 편집 ...
  2. 원격 선택하고 해당 IP 주소와 포트를 입력합니다.

IDEA 구성

  1. 디버그를 클릭하고 디버깅을 시작! ! ! .

발문

이 문서에서는 기본 원격 디버깅의 개념뿐만 아니라 방법과 같은 원격 디버깅을 완료하기 위해 IDE를 결합을 소개합니다. 시도하지 불구하고 톰캣은 JDWP 계약 원격으로 코드를 디버깅 할 수 있습니다.

참조

추천

출처juejin.im/post/5d4902a36fb9a06b017e3650