IntelliJ IDEA でコードをデバッグできません。デバッグ モードがアクティブで実行中ですが、有効で停止可能なブレークポイントを表す "v" がブレークポイントでチェックされていない場合。
画像を参照してください。
私は本当に答えをウェブで検索します。私はどうしたらいいですか?
IntelliJ IDEA でコードをデバッグできません。デバッグ モードがアクティブで実行中ですが、有効で停止可能なブレークポイントを表す "v" がブレークポイントでチェックされていない場合。
画像を参照してください。
私は本当に答えをウェブで検索します。私はどうしたらいいですか?
Grails 2.3 以降、いくつかの Grails コマンド (例: )の分岐実行が導入されました。IntelliJ IDEA から Grails アプリケーションをデバッグするだけの場合、プロセスはデバッグ オプションをオンにして開始されます。IDEA コンソールの出力は次のようになります。run-app
test-app
GrailsStarter
/usr/lib/jvm/default-java/bin/java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:59935,suspend=y,server=n [...] /opt/idea-IU-133.330/lib/idea_rt.jar org.codehaus.groovy.grails.cli.support.GrailsStarter [...] run-app Connected to the target VM, address: '127.0.0.1:59935', transport: 'socket'
アプリケーション自体は、 という名前の別のプロセスで開始されますForkedTomcatServer
。これは、コードが実行される場所であり、デバッガーが実際に接続する場所です。
これを行うには、 の構成で設定debug: true
します。ここで IDEA から Grails を実行するだけで (デバッグは行わないでください)、アプリケーションが HTTP リクエストを処理する準備が整うと、コンソールに次の行が表示されます。BuildConfig.groovy
run
grails.project.fork
Listening for transport dt_socket at address: 5005
これは、別のリモート実行構成を送信する場所です。リモート デバッガーが接続されたらすぐに、HTTP 要求を発行すると、デバッグが機能します。
のコマンド エントリに関連付けられた値を に設定することで、コンパイル/テスト/実行/戦争/コンソール Grails コマンドの分岐実行を完全に無効にすることもできます。しかしそうすると、Grails 2.3 で追加された分岐実行の利点が失われます。grails.project.fork
false
grails (2.3+) アプリケーションのデバッグは、2 つの方法で行うことができます。
1. 簡単な解決策: デバッグを無効にする
BuildConfig.groovy を編集します。
grails.project.fork = [
war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, fork ...
run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, fork ...
に
grails.project.fork = [
war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, fork ...
run: false,
長所:
短所:
2. 関連するソリューション: フォークされたランタイムのデバッグ
これは、実行中の grails アプリケーションにデバッガーを接続する、やや複雑なソリューションです。このブログ投稿で詳しく説明されています。
セットアップが完了すると、grails を fork モードで起動できる追加の実行構成と、その fork モードをデバッグできる別の追加の実行構成ができます。問題は、両方を開始する必要があるか、機能しないことです。
長所:
短所:
考慮事項
解決策 2 は、柔軟性を提供するという意味でほとんど優れています。私は個人的にデバッグをあまり使用しないので、通常モードで開始します。デバッグしたいときは、デバッグモードで再起動します。
解決策 1 は、デバッグする必要があり、多くの再起動も必要な場合に厳密に優れています。たとえば、BootStrap.groovy でドメイン クラスまたはデータベースのセットアップを行っている場合です。
この記事を見ましたか?手順を追って説明し、問題を解決してくれました。
http://mrhaki.blogspot.com/2013/12/grails-goodness-debugging-app-in-forked.html
これは決してデフォルト設定ではなく、個々の選択に任せるべきです。intellijのデバッグモードでこれを実行するだけで、2つの構成を行うのは非常に面倒です。最初に、run-app の後に「--debug-fork」を追加して、通常の実行構成をセットアップまたは変更する必要があります。次に、すべてのデフォルトを受け入れながら、リモート デバッグを構成する必要があります。次に、実行構成を実行する必要があり、それが実行されているときに、デバッグ構成を実行します。なんてつらい。私は、開発中に分岐オプションなしで実行することを完全にやめることを好みます。時は金なりです。これについては、HAKI 氏の説明を参照してください。http://blog.jdriven.com/2013/12/grails-goodness-debugging-app-forked-mode/
Grails のフォーク モードのデバッグに関するこのブログをチェックしてください。
1.ターミナル --> コマンド: run-app --debug-jvm
コンソール出力: grails> run-app --debug-jvm | アプリケーションを実行しています... アドレス: 5005 でトランスポート dt_socket をリッスンしています
注: クライアント システムごとにポートを変更/更新します。
3.完了したら、新しいデバッガーが設定され [ステップ 2]、デバッグ モードで webapp を実行します。
コンソール出力: ターゲット VM に接続されました。アドレス: 'localhost:5005'、トランスポート: 'socket'
5.構成が接続されました - 問題を解決するためにデバッグ スキルを調べてください :) :)