IntelliJ IDEAでコードをデバッグできません。デバッグモードがアクティブで実行されているが、ブレークポイントには、有効で停止可能なブレークポイントを表す「v」がチェックされていない場合。
画像をご覧ください:
私は本当にウェブ上で答えを探しています。私はどうしたらいいですか?
ここで言及したすべてを成功せずに試しました。唯一役立つ情報は here です。
本質的に、次をgrails-app/conf/BuildConfig.groovy
に追加して、フォークされた実行を無効にする必要があります。
grails.project.fork = [
test: false,
run: false
]
IntelliJでデバッグが利用可能になりましたIDEA Ultimate Edition v.12.1.6リモートデバッグなしの通常のデバッグのみ。Grails2.3.1でテスト済み、Java 1.7。 0_45、Windows 7 64ビット。
これを試して:
アイデアでは、「実行」ボタンの横にあるリストからEdit configurationを選択します。次にRemoteを追加し、名前を選択してデフォルトのリモート構成設定のままにします。 (ポート5005など)
を使用してコンソールからアプリを実行する
grails run-app --debug-fork
アイデアでは、リストから構成を選択し、コンソールが情報を表示するときにデバッグボタンを押します:
Listening for transport dt_socket at address: 5005
Grails 2.3以降、いくつかのGrailsコマンド(例:run-app
、test-app
)のforked executionは 導入 でした。 IntelliJ IDEAからGrailsアプリケーションをデバッグするだけの場合、デバッグオプションをオンにしてGrailsStarter
プロセスが開始されます。 IDEAコンソールの出力は次のようになります。
/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
のrun
構成でBuildConfig.groovy
にgrails.project.fork
を設定します。今すぐGrailsをIDEA(デバッグしない))から実行すると、アプリケーションがHTTPリクエストを処理する準備ができたときにコンソールに次の行が表示されます。
Listening for transport dt_socket at address: 5005
これは、個別の リモート実行構成 を指示する場所です。リモートデバッガーが接続されるとすぐに、HTTP要求を発行するとデバッグが機能します。
grails.project.fork
のコマンドエントリに関連付けられた値をfalse
に設定することで、コンパイル/テスト/実行/ war/console Grailsコマンドのフォークされた実行を無効化することもできます。 。ただし、Grails 2.3で追加された分岐実行の利点は失われます。
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を起動できる追加の実行構成と、フォークモードをデバッグできる別の追加の実行構成があります。問題は、両方を開始する必要があるか、機能しないことです。
長所:
短所:
考慮事項
解決策2は、柔軟性が得られるという意味で最も優れています。私は個人的にデバッグをあまり使用しないので、通常モードで起動してください。デバッグするときは、デバッグモードで再起動します。
ソリューション1は、デバッグする必要があり、何度も再起動する必要がある場合は、厳密に優れています。たとえば、BootStrap.groovyでドメインクラスまたはデータベースのセットアップを行っている場合。
この記事を見ましたか?それはステップバイステップの方法を詳述し、私の問題を乗り越えました。
http://mrhaki.blogspot.com/2013/12/grails-goodness-debugging-app-in-forked.html
Intellij 15.0.4を使用した2016年のGrails 3.xでは、他のどの回答も機能しません。これは私にとってはうまくいきます:
次のコマンドを使用して、intellijでgrailsを起動します。
run-app --debug-jvm
コンソールは、「アドレス:5005 Grailsアプリケーションが http:// localhost:808 環境:development」で実行されているトランスポートdt_socketをリッスンする必要があります。
これで、Intellijに「Remote」タイプの新しい構成を追加できます。次に、デフォルトで起動します。
新しいデバッグコンソールウィンドウには、「ターゲットVMに接続済み、アドレス: 'localhost:5005'、トランスポート: 'socket'」と表示されます。
できた.
興味のある方のために、デバッグ可能なサーバーを起動するためのgrails 3.xドキュメントへの参照は、セクション2.8、runningAndDebuggingAnApplicationにあります。
http://grails.github.io/grails-doc/3.1.x/guide/gettingStarted.html#runningAndDebuggingAnApplication
「アプリケーションクラスを実行する方法はいくつかあります。IDEを使用している場合は、クラスを右クリックして、IDE =これはGrailsアプリケーションを起動します。これは、run-app --debug-jvmコマンドの使用時にリモートデバッガーを接続することなくIDEから直接デバッグできるため、デバッグにも役立ちます。コマンドラインから。」
重要な注意点。 「クラスを単に右クリックしてIDEから直接実行する」ことを試みたところ、アプリが起動しました。ただし、コントローラーに送信したすべてのリクエストは、「grailsDispatcherServlet」という名前のサーブレットで「/ myendpoint」という名前のビューを解決できませんでしたというメッセージで500エラーになりました。
そのため、上記の手順に戻りました。
これは、Grails 3とIdea(2016.1)の非常に単純な問題です。他の回答で推奨されているように、ファイルを編集する必要はもうありません。
何らかの理由で、Ideaツールバーのデバッグアイコンがグレー表示されているため、アプリケーションのエントリポイント(アプリケーションを起動する静的voidメインメソッドを持つクラス)に移動するだけで、実行矢印の1つをクリックします。左側のガターで[デバッグ]オプションを選択します。
JetBrainsドキュメントから:
https://www.jetbrains.com/help/idea/2016.1/getting-started-with-grails-3.html
Grails 3アプリケーションのデバッグ
IntelliJ IDEAでは、Application.groovyを使用してGrails 3アプリケーションをデバッグできます。
プロジェクトツールウィンドウで、initディレクトリを開き、Application.groovyを右クリックします。ドロップダウンリストから[Debug Grails: 'name' grails3_debug_app]を選択します。また、エディターを使用してデバッグプロセスを開始することもできます。
Mac Os x LionのGrails 2.3.4で最新のintellijでテストしました。
その後、Igorsのアドバイスを試してみましたが、フォークモードでは動作しません。
grails.project.fork = [
test: false,
run: false
]
詳細を確認してください grails documentation
分岐モードをデバッグする場合は、次のブログ投稿の説明をよく確認してください。
http://blog.jdriven.com/2013/12/grails-goodness-debugging-app-forked-mode/
たった3つの推測:
run-app
ではなくrun-war
を実行してみてください。両方とも動作するはずですが、run-war
が動作していない可能性があります。
または:コンソールからリモートでデバッグしてみてください:
grails -debug run-app
を選択し、Ideaでリモートデバッグに接続します。
または、最後の手段:プロジェクトを以前のGrailsバージョンにダウングレードすることもできます。はい、これは本当に迷惑です。
お役に立てれば。
チェックアウト this Grails Forked Modeのデバッグに関するブログ。
これはデフォルトの構成ではなく、個人の選択に任せてください。 intellijでデバッグモードでこのことを実行するだけで2つの構成を行うのは非常に面倒です。最初に、run-appの後に「--debug-fork」を追加して、通常の実行構成をセットアップまたは変更する必要があります。次に、すべてのデフォルトを受け入れながら、リモートデバッグを構成する必要があります。次に、実行構成を実行する必要があり、実行中にデバッグ構成を実行します。なんて痛い。開発中に分岐オプションなしで実行することを完全に廃止することを好みます。時は金なり、私は猿に回る時間がない。これについてはHAKI氏の説明をご覧ください。 http://blog.jdriven.com/2013/12/grails-goodness-debugging-app-forked-mode/