デバッグでは、アプリケーションを調べてトラブルシューティングできます。デバッグ中には、コード内の特定のポイントでアプリケーションを停止するかどうかを制御できます。また、重要な変数を監視したり、コードをテストすることもできます。デバッグでは、アプリケーションの起動方法を制御するための設定が使用されます。アプリケーションをデバッグするときは、デバッグ版のアプリケーションファイルを実行します。

ColdFusion デバッガーの使用

ColdFusion デバッガーを使用する前に、次の作業をおこなってください。

デバッガーを使用するための ColdFusion の設定

デバッガーを使用する前に、次のことを確認します。

  • デバッグ対象のプロジェクト、またはデバッグ対象のファイルを含むプロジェクトにサーバーが関連付けられているかどうかを確認します。
  1. ナビゲータービューでプロジェクトを右クリックし、「プロパティ」を選択します。

  2. プロパティダイアログボックスで「ColdFusion サーバーの設定」を選択します。

  3. 「サーバーの選択」で、サーバーが選択されていることを確認します。サーバーが選択されていない場合は、サーバードロップダウンリストからサーバーを選択するか、「サーバーの追加」を選択して新しいサーバーを設定します。

  • ColdFusion サーバーで RDS を有効にし、ColdFusion Builder で RDS の設定情報が正しく指定されていることを確認します。
  • ColdFusion Administrator でデバッグが有効になっていることを確認します。
  1. ColdFusion Administrator で、デバッグとロギング/デバッガーの設定を選択します。

  2. ラインデバッグの許可」を選択します。

  3. デバッグに使用するポートを指定します。デフォルト値は 5005 です。

  4. 同時デバッグセッションの最大数を指定します。デフォルト値は 5 です。

  5. 「変更の送信」をクリックします。

  6. リクエストのタイムアウト時間を長くするには、次のようにします。

  7. サーバーの設定/設定を選択します。

  8. 「リクエストタイムアウト」(秒)を選択して、必要なタイムアウト値を入力します。例えば、300 のように入力します。

  9. 「変更の送信」をクリックします。

  10. デバッガーサーバーは、手順 3 で指定したものとは別個のポートで、ColdFusion Builder からのコマンドをリスンします。ColdFusion では、デフォルトで、使用可能なポートをランダムに使用してデバッガーサーバーを起動します。そのため、ColdFusion(つまりデバッガーサーバー)がファイアウォールの後ろにある場合は、問題が発生する可能性があります。デバッガーがリスンしているランダムなポートをファイアウォールがブロックするからです。この問題を回避するには、デバッガーサーバーが使用するポート番号を固定的に指定し、このポートの使用をファイアウォールで許可します。デバッガーサーバーのポート番号を固定的に設定するには、ColdFusion Administrator の Java と JVM ページ(または J2EE アプリケーションサーバーの適切なセクション)で、次の JVM 引数を指定します。portNumber の部分は、実際に使用するポート番号に置き換えてください。

    -DDEBUGGER_SERVER_PORT=portNumber

  11. ColdFusion を再起動します。J2EE 設定の ColdFusion を実行している場合は、指定のデバッグポートを使用してデバッグモードでサーバーを再起動します。

J2EE 設定の ColdFusion におけるデバッグのセットアップ

  1. サーバー設定の ColdFusion を実行していない場合は、実行するアプリケーションサーバーの設定ファイルまたはスタートアップスクリプトで Java デバッグパラメーターを指定します。パラメーターは次のようになります。

    -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=<port_number>

    ColdFusion Administrator のデバッガーの設定ページで指定したのと同じポート番号を指定する必要があります。サーバー設定を実行する場合、ColdFusion では、ColdFusion Administrator のデバッガーの設定ページの使用時に、これらのデバッグパラメーターを jvm.config ファイルに書き込みます。

  2. サーバー設定の ColdFusion を実行しておらず、アプリケーションサーバーが JRE 1.6 で実行されていない場合は、アプリケーションサーバーで実行している JDK バージョンの tools.jar ファイルを、ColdFusion の ¥lib フォルダーにコピーします。例えば、JRE 1.4 で JRun を実行している場合は、JDK 1.4 の tools.jar ファイルを ColdFusion の ¥lib フォルダーにコピーする必要があります。

  3. サーバーバージョンの ColdFusion を実行しており、JRE 1.6 以外のバージョンの JRE を jvm.config ファイルで指定する場合は、jvm.config ファイルで指定されている JDK バージョンの tools.jar ファイルを ColdFusion の ¥lib フォルダーにコピーします。

ColdFusion Builder でのデバッガー設定の指定

  1. ColdFusion Builder でウィンドウ/環境設定を選択します。

  2. ツリービューで、ColdFusion/デバッグの設定を選択します。

  3. 「ホーム」ボタンをクリックしたときにデバッガーの「デバッグ出力バッファー」に表示するホームページの URL を指定します。

  4. デバッグ可能なファイルタイプの拡張子と、デバッガーに認識させるデバッガースコープを指定します。サイズの大きなファイルをデバッグする際のパフォーマンスを向上させるために、情報が不要なスコープのチェックはすべて選択解除してください。

  5. ColdFusion エラーが発生した行でデバッガーを停止する場合は、「CFML ランタイム例外発生時にブレーク」を選択します。

  6. 警告ダイアログボックスを表示せずに TailView ビューでサーバーログを確認する場合は、「警告ダイアログボックスを表示せず Eclipse エラーログに例外を記録」を選択します。

アプリケーションのデバッグ

ColdFusion Administrator でデバッガーを有効にし、ColdFusion Builder でデバッガーを設定すると、ColdFusion Builder でプロジェクトをデバッグできるようになります。

起動設定の作成と編集

ColdFusion Builder でアプリケーションのプロジェクトを初めてデバッグすると、そのプロジェクトに固有の起動設定が自動的に作成されます。起動設定では、プロジェクト名(デバッグ対象のプロジェクトに基づく名前)、メインのアプリケーションファイル、およびアプリケーションをデバッグするためのパスが自動的に定義されます。

起動設定の管理は、構成の作成、管理、および実行ダイアログボックスでおこないます。

デバッグ設定

ColdFusion Builder によって作成されたデフォルトの起動設定は編集できます。

  1. デバッグするプロジェクトをナビゲータービューで選択します。

  2. 起動設定には、次のいずれかの方法でアクセスできます。

    • 実行/デバッグまたは実行/デバッグの構成を選択します。
    • ワークベンチツールバーで を選択します。
    • プロジェクトを右クリックし、デバッグ/デバッグの構成を選択します。
  3. デバッグの構成ダイアログボックスで編集する起動設定を選択します。起動設定を新規作成したり、既存の設定を元に新しい設定を作成したりすることもできます。

  4. 必要に応じて、起動設定の内容を変更するための「パースペクティブ」リンクをクリックします。

アプリケーションの実行

ブレークポイントを設定する前に、デバッグするアプリケーションを実行します。デバッグする前にアプリケーションを実行するとアプリケーションがコンパイルされるため、デバッグ時のパフォーマンスが向上します。

  1. 実行するプロジェクトをナビゲータービューで選択します。

  2. 実行構成ダイアログボックスで、実行設定を選択または変更します。このダイアログボックスは、次のいずれかの方法で表示できます。

    • 実行/実行構成を選択します。
    • プロジェクトを右クリックし、実行/実行構成を選択します。
  3. 必要に応じて、実行するか変更する設定を選択します。

  4. 「実行」をクリックします。

コンピューターのデフォルトブラウザーでアプリケーションが実行されます。別の外部ブラウザーを指定するには、次のようにします。

  • (Windows の場合)プロジェクトを右クリックして、「プロパティ」を選択します。「ColdFusion サーバーの設定」に移動して、コンピューターにインストールされている Web ブラウザーを選択します。
  • (Mac の場合)環境設定ダイアログボックスで、一般/Web ブラウザーを選択して、コンピューターにインストールされている Web ブラウザーを選択します。

ブレークポイントの設定と削除

ブレークポイントを使用すると、アプリケーションの実行の制御できます。これにより、コードの詳細を検査して、アプリケーションをデバッグできます。ブレークポイントを追加するにはコードエディターを使用します。追加したブレークポイントはブレークポイントビューで管理できます。ブレークポイントは、コードを記述するときや、デバッグするときにも設定できます。

ブレークポイントビューでブレークポイントを管理する方法について詳しくは、ブレークポイントビューを参照してください。

ColdFusion ブレークポイント

ColdFusion デバッガーの ColdFusion ブレークポイントには、次の 4 つの状態があります。

  • 使用可能で有効:この状態は、ブレークポイントが有効な位置にあることを示します。ブレークポイントは、CFML エディターの左マージンにべた塗りの青い円として表示されます。このブレークポイントに到達するとコードの実行が停止します。
  • 未解決:ColdFusion では、メモリ内にロードされているページにブレークポイントが設定されます。そのページを変更した後に実行していない場合は、サーバー上のページとソースの間で同期が失われます。この状況では、ブレークポイントを設定する行が有効であるかどうかを ColdFusion が判断できない場合があります。疑問は、このタイプのブレークポイントを表します。
  • 無効:ColdFusion Builder で編集されている CFML がメモリ内の CFML と同一であり、無効な行にブレークポイントが設定されていると ColdFusion で判断された場合、ブレークポイントは赤の X として表示されます。
  • 使用不可:この状態は、ブレークポイントが使用不可であることを示します。

コードエディターでのブレークポイントの設定

  1. ブレークポイントを設定するコードを含んでいる ColdFusion Builder プロジェクトを開きます。

  2. ブレークポイントを設定するコード行を探し、次のいずれかの操作をおこないます。

    • エディターの左端にあるマーカーバーをダブルクリックします。
    • 実行/ブレークポイントを切り替えまたは実行/行ブレークポイントを切り替えを選択します。

    注意:

    ColdFusion Builder では、メソッドブレークポイントの切り替えと監視ポイントの切り替えはサポートされていません。

  3. CFML ファイル内にブレークポイントを設定すると、特定の場所でページの実行を停止できます。特定の行にブレークポイントを設定すると、その行の直前で CFML の実行が停止します。例えば、次の CFML ページの 3 行目にブレークポイントを設定した場合、<cfset myName = "Wilson"> の前で実行が停止します。

    <cfoutput>Your name is #yourName#.</cfoutput>
    <cfset myName = "Wilson"

ブレークポイントが設定された行の頭に青のドットが表示されます。

ColdFusion Builder デバッグパースペクティブのブレークポイントビューで、現在のプロジェクトに設定されているブレークポイントのリストを確認することもできます。

コードエディターでのすべてのブレークポイントのスキップ

コード内にブレークポイントを設定した後で、デバッグ時に、それらのブレークポイントをすべて無視することもできます。

  1. ブレークポイントを設定したコードを含んでいる ColdFusion Builder プロジェクトを開きます。

  2. ブレークポイントビューのツールバーで、「すべてのブレークポイントをスキップ」を選択します。

コードエディターでのブレークポイントの削除

エディターの左端にあるマーカーバーで、既存のブレークポイントをダブルクリックします。

選択したブレークポイントが、マーカーバーと、ColdFusion Builder デバッグパースペクティブのブレークポイントビューから削除されます。

ファイルからすべてのブレークポイントを削除するには、メインツールバーのメニューから実行/すべてのブレークポイントを削除を選択します。

デバッグセッションの開始

  1. ナビゲータービューで、デバッグするプロジェクトまたはファイルを選択します。

  2. 次のいずれかの方法で、デバッグセッションを開始できます。

    • 実行/デバッグを選択します。
    • ワークベンチツールバーで をクリックします。
    • プロジェクトを右クリックし、デバッグ/ColdFusion アプリケーションを選択します。

デバッグの起動設定が自動的に作成されて起動されます。

注意:

ページのデバッグ中にそのページを閲覧しようとしたり更新しようとしたりすると、デバッガーが予期しない動作をする可能性があります。

デバッグセッションの管理

デバッグビューを使用すると、アプリケーションのデバッグの制御、アプリケーションの一時停止、再開、終了、コードへのステップイン、ステップオーバーなどをおこなえます。

ColdFusion デバッグパースペクティブの各種ビューについては、ColdFusion デバッグパースペクティブを参照してください。

行単位でのコードの実行

「ステップイン」、「ステップオーバー」、「ステップリターン」ボタンを使用して、行単位で CFML アプリケーションを実行することができます。

ステップを正しく機能させるには、コンパイル済みクラスのキャッシュをクリアします。これを行うには、以前のバージョンの ColdFusion でコンパイルした CFML ページをすべて再コンパイルします。

サイズの大きいファイルでは、ステップやブレークポイントの動作が遅くなる場合があります。パフォーマンスを上げるには、次のようにします。

  1. ColdFusion Builder でウィンドウ/環境設定を選択します。

  2. ツリービューで、ColdFusion/デバッグの設定を選択します。

  3. 情報を収集する必要がないスコープを選択解除します。

ステップイン

ステップインは、UDF、CFC、カスタムタグおよびプロジェクトに含まれるファイルに対して使用します。cfset タグなどの CFML タグに対してはステップインを使用しないでください。ステップインを使用すると、ステップオーバーよりもパフォーマンスに負荷がかかります。関数、タグ、ファイルにステップインする場合は、開いているプロジェクトのいずれかでファイルが表示されている必要があります。ステップイン対象のファイルは開いている プロジェクト内にある必要があります。

ステップオーバー

ステップオーバーは、プロジェクトに含まれるファイル(UDF や CFC など)をスキップして CFML アプリケーションの処理を進めるときに使用します。

ステップリターン

ステップリターンは、プロジェクトに含まれるファイル(UDF や CFC など)から呼び出し元のページに戻るときに使用します。

変数の状態の確認

CFML コードを実行するときには、変数ビューに変数の値とスコープを表示できます。変数ビューに表示されるのは、設定ダイアログボックスで選択したスコープに属している変数のみです。変数ビューの使用について詳しくは、変数ビューを参照してください。

監視式

別の関数にステップインしたときに、スコープから外れる可能性がある重要な変数を監視するときは、監視式を使用すると便利です。独自の式を作成して、監視や評価を行うことができます。デバッグセッション中に、式を変更することもできます。

式ビューでは、次の操作を行うことができます。

  • 監視式を作成するには、右クリックメニューから「監視式を追加」を選択します。監視式を追加ダイアログボックスが開いたら、式を入力できます。
  • 追加した監視式を無視するには、式を右クリックし、「使用不可にする」を選択します。
  • 監視式を編集するには、式を右クリックし、「監視式を編集」を選択します。その後、式を変更できるようになります。

式ビューの使用について詳しくは、式ビューを参照してください。

リモートアプリケーションのデバッグ

ColdFusion をリモートサーバーで実行している場合は、リモートサーバー接続を設定し、ColdFusion と ColdFusion Builder の間のマッピングを指定します。マッピングを指定すると、ColdFusion Builder と ColdFusion の間で同じプロジェクトまたはファイルのコピーが処理されるようになります。

  1. リモートサーバーの設定については、リモートサーバーの追加を参照してください。必要に応じて、RDS 設定情報を入力します。

  2. サーバービューでサーバーを右クリックし、「サーバーの編集」を選択します。サーバーウィザードのマッピング画面で、次のマッピング情報を入力します。

    • ローカルパス:リモート ColdFusion サーバー上でプロジェクトまたはフォルダーを探すときに ColdFusion Builder で使用するパス。

リモートパス:リモート ColdFusion サーバー上にあるプロジェクトまたはフォルダーのパス。

注意:

リモート ColdFusion サーバーと ColdFusion Builder の間では、複数のマッピングを指定できます。

例えば、D:¥MyCoolApp を参照する ColdFusion プロジェクト内のファイルを編集していて、それに対応するファイルがリモートサーバーの D:¥Shared¥websites¥MyCoolSite にあるとします。この場合、ローカルパスを D:\MyCoolApp、リモートパスを D:\Shared\websites\MyCoolSite と指定してマッピングを作成します。ColdFusion サーバーにファイルをデプロイする場合は、それらのファイルを W:\websites\MyCoolSite\ にコピーします。ColdFusion サーバーでは、このパスを D:\Shared\websites\MyCoolSite と見なします。ColdFusion Builder のマッピングで、ColdFusion Builder ディレクトリは D:¥MyCoolApp であり、サーバーは D:¥Shared¥websites¥MyCoolSite であると指定します。これにより、ColdFusion Builder は、ファイルパス(D:¥MyCoolApp¥index.cfm)を、ColdFusion サーバーが認識するパス(D:¥Shared¥websites¥MyCoolSite¥index.cfm)に変換します。クライアントとサーバー間の通信の詳細を確認するには、ColdFusion Administrator の JVM 引数に次を追加します。

-DDEBUGGER_TRACE=true

ナビゲータービューで、デバッグするプロジェクトまたはファイルを選択し、ワークベンチツールバーの をクリックします。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー