IDEAリモートデバッグの使用


できるだけ少なく、サーバー上のJavaプロセスを再起動し、正常な使用に影響を与えないようにする必要があります.
1、ローカルコードとデバッグしたいプロセスのコードを一致させ、(si環境は一般的に開発主幹を使用し、まずローカルワークスペースコードを開発主幹分岐に切る)後、remote実行構成を追加し、具体的には下図を参照
上の図のnameは勝手に記入して、hostはサーバーのIPを記入して、module's classpatchはデバッグしたい項目を選択します
コピー第1行代替:-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=50052、サーバーにログインし、権限の問題を避けるためにsudu su -コマンドを使用してrootに切り替える(注意して使用)ps -ef | grep javaを使用して、デバッグしたいプロセスを見つけます.
次のような完全な起動コマンドをコピーします.
java -jar -Xms4096m -Xmx4096m -Xmn512m -Xss256k -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=heapdump.hprof /data/dubbo/app/esmart-assign_8080/esmart-assign.jar --server.port=8080 --dubbo.port=28080 --server.tomcat.basedir=/data/dubbo/cache/esmart-assign_8080 --log.home=/data/dubbo/logs/esmart-assign_8080 --log.level=info --log.stdout=0 --ecej.ops.port=80 --ecej.ops.iswitch=1 --jmx.rmi.port=18080

前のステップでコピーした-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005を-jarの後に追加し、完全な起動コマンドは
java -jar  -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005  -Xms4096m -Xmx4096m -Xmn512m -Xss256k -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=heapdump.hprof /data/dubbo/app/esmart-assign_8080/esmart-assign.jar --server.port=8080 --dubbo.port=28080 --server.tomcat.basedir=/data/dubbo/cache/esmart-assign_8080 --log.home=/data/dubbo/logs/esmart-assign_8080 --log.level=info --log.stdout=0 --ecej.ops.port=80 --ecej.ops.iswitch=1 --jmx.rmi.port=18080

3、sudo kill -9 27469を先に使用してプロセスを殺す
完全なコマンドをコピーしてxshellに貼り付け、車に戻って実行します.
4、ideaに戻り、第一歩の起動構成を選択し、debugモードで起動し、所望の端点を打つ(できるだけ打たないで、他の要求をブロックしないようにする)
デバッグプロセスで生成されたログはideaコンソールには表示されません.xshellを使用してtabを新しく開いてサーバ上のログファイルを表示できます.
ブレークポイントによるVMの停止の防止
ヒント:ideaのブレークポイントはデフォルトでVM全体を停止します.これにより、どのスレッドもブレークポイントに入ると、すべてのリクエストがブロックされます.これにより、テスト環境の正常な使用に影響を与える可能性があります.
解決策:ブレークポイントを打った後、マウスの右クリックで赤い点をクリックし、SuspendをThreadに設定し、最後にMake Defaultをクリックしてデフォルトに設定します.後で需要があればまた直すことができます.