[開発]毎日リモートデバッグ

序文

デイリー移動レンガ、毎日トランプルピットは、ゆっくりとしか、自分の開発スキルのより多くを問うことに成功を蓄積します。

リモートデバッグについて

非常に異なる開発するクライアントと、バックエンドから開発に従事し、それがサーバーコードの抜け穴を見つけることです。

1、例外処理、高いログ収集の要件。複数のサーバー上の問題ではなく、携帯電話の位置と操作上の問題の2分析。

  • 測位サーバ上のコードの抜け穴が、我々は動的な情報を見ることを期待、まだ一定の制限がある例外情報とビジネスのログを見に依存している(例えば、私たちはどのようなもの実際の実行時のクラスのロードを見たいですか?)。
  • もちろん、我々はまた、サーバー上で使用できるJavaデバッグツールが、多くの場合、より多くの環境制約生成(セキュリティやその他の特性のために)、すべてのデバッグツールのが用意されています。

これは、いくつかの方法が必要でリモートデバッグでもブレークポイントデバッグサーバー上のコードを、この記事では、IDEA、ブレークポイントデバッグと組み合わせたリモートデバッグおよび開発ツールを実行する方法を説明します。

関連情報

  1. リモートデバッグを使用すると、サーバー上で直接コードをデバッグできると言うことではない、いくつかは、サーバー上で事前に設定が必要です。
  2. デバッグモードでは、パフォーマンスに影響を与え、さらにはセキュリティも常にデバッグモードをオンにしないで、影響を受けることになります。
  3. デバッグモードがシールドJVM自体の動作を最適化するため、JVMのパフォーマンスが影響を受けるであろう。
  4. イントラネットを推薦、試験環境が露出したネットワークをお勧めされていない、潜在的なセキュリティ上の脅威が存在します。

オープンJavaのリモートデバッグモード

  • JPDA(Javaプラットフォームデバッグアーキテクチャ)JDWP(Javaのデバッグワイヤプロトコル)プロトコルデバッグ一部として、APIのシリーズを提供します。
  • JDWPプロトコルは、リモートデバッグJavaアプリケーションのデバッグプロセスと通信するためのアプリケーションプロセスです。

デバッグモードをオンにします

  • JVMの動作パラメータでは、次の2つの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を結合する方法。試していないのにTomcatはまた、JDWP契約はリモートで、コードをデバッグすることができます。

リファレンス

おすすめ

転載: juejin.im/post/5d4902a36fb9a06b017e3650