IDEAリモートデバッグの使用
2048 ワード
できるだけ少なく、サーバー上のJavaプロセスを再起動し、正常な使用に影響を与えないようにする必要があります.
1、ローカルコードとデバッグしたいプロセスのコードを一致させ、(si環境は一般的に開発主幹を使用し、まずローカルワークスペースコードを開発主幹分岐に切る)後、remote実行構成を追加し、具体的には下図を参照
上の図のnameは勝手に記入して、hostはサーバーのIPを記入して、module's classpatchはデバッグしたい項目を選択します
コピー第1行代替:
次のような完全な起動コマンドをコピーします.
前のステップでコピーした
3、
完全なコマンドをコピーしてxshellに貼り付け、車に戻って実行します.
4、ideaに戻り、第一歩の起動構成を選択し、debugモードで起動し、所望の端点を打つ(できるだけ打たないで、他の要求をブロックしないようにする)
デバッグプロセスで生成されたログはideaコンソールには表示されません.xshellを使用してtabを新しく開いてサーバ上のログファイルを表示できます.
ブレークポイントによるVMの停止の防止
ヒント:ideaのブレークポイントはデフォルトでVM全体を停止します.これにより、どのスレッドもブレークポイントに入ると、すべてのリクエストがブロックされます.これにより、テスト環境の正常な使用に影響を与える可能性があります.
解決策:ブレークポイントを打った後、マウスの右クリックで赤い点をクリックし、SuspendをThreadに設定し、最後にMake Defaultをクリックしてデフォルトに設定します.後で需要があればまた直すことができます.
1、ローカルコードとデバッグしたいプロセスのコードを一致させ、(si環境は一般的に開発主幹を使用し、まずローカルワークスペースコードを開発主幹分岐に切る)後、remote実行構成を追加し、具体的には下図を参照
上の図のnameは勝手に記入して、hostはサーバーのIPを記入して、module's classpatchはデバッグしたい項目を選択します
コピー第1行代替:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
2、サーバーにログインし、権限の問題を避けるために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をクリックしてデフォルトに設定します.後で需要があればまた直すことができます.