AWS Cloud9 統合開発環境 (IDE) でビルダー、ランナー、デバッガーの操作 - AWS Cloud9

AWS Cloud9 統合開発環境 (IDE) でビルダー、ランナー、デバッガーの操作

ビルダーは、プロジェクトのファイルの構築方法を AWS Cloud9 IDE に指示します。ランナーは、特定のタイプのファイルの実行方法を AWS Cloud9 IDE に指示します。ランナーは、デバッガーを使用してファイルのソースコードの問題を見つけることができます。

AWS Cloud9 IDE を使用して、次の方法でコードを構築、実行、およびデバッグできます。

組み込みの構築、実行、およびデバッグのサポート

AWS Cloud9 IDE には、いくつかの言語でコードの構築、実行、デバッグのサポートが組み込まれています。完全なリストについては、「言語のサポート」を参照してください。

ビルドの組み込みサポートは、メニューバーで[Run (実行)]、[Build System (ビルドシステム)]を選択するか、[Run (実行)]、[Build (構築)]メニューコマンドで使用できます。プログラミング言語またはツールのサポートを追加するには、「ビルダーまたはランナーを作成する」を参照してください。

実行の組み込みサポートは、[Run (実行)]ボタン、およびメニューバーの[Run (実行)]、[Run With (次で実行)]、および[Run (実行)]、[Run Configurations (実行設定)]メニューコマンドで使用できます。プログラミング言語またはツールのサポートを追加するには、「ビルダーまたはランナーを作成する」または「実行設定を作成する」を参照してください。

デバッグの組み込みサポートは、[Debugger (デバッガー)]ウィンドウから使用できます。[Debugger (デバッガー)]ウィンドウを表示するには、[Debugger (デバッガー)]ボタンを選択します。[Debugger (デバッガー)]ボタンが非表示になっている場合は、メニューバーで[Window (ウィンドウ)]、[Debugger (デバッガー)]の順に選択します。

プロジェクトのファイルを構築する

  1. 構築したいコードに対応するファイルを開きます。

  2. メニューバーで、[Run (実行)]、[Build System (ビルドシステム)]を選択し、使用するビルダーの名前がまだ選択されていない場合は選択します。使用したいビルダーがリストに表示されない場合は、この手順を停止して、「ビルダーまたはランナーを作成する」の手順を完了してから、この手順に戻ります。

  3. Run (実行)]、[Build (構築)]を選択します。

コードを実行する

  1. 実行したいコードに対応するファイルをまだ開いて選択していない場合は、ファイルを選択して開きます。

  2. メニューバーで、以下のいずれかを選択します。

    • 最も一致する組み込みランナーを使用してコードを実行するには、[Run (実行)]、[Run (実行)]の順に選択します。AWS Cloud9 がこれを見つけられない場合は、このコマンドは無効になっています。

    • AWS Cloud9 で最後に使用された実行設定を使用してコードを実行するには、[Run (実行)]、[Run Last (直近の実行)]を選択します。

    • 特定のランナーを使用してコードを実行するには、[Run (実行)]、[Run With (次で実行)]を選択し、ランナーの名前を選択します。使用したいランナーがリストに表示されない場合は、この手順を停止して、「ビルダーまたはランナーを作成する」の手順を完了してから、この手順に戻ります。

    • ファイル名、コマンドラインオプション、デバッグモード、現在の作業ディレクトリ、および環境変数のカスタムの組み合わせを使用して特定のランナーでコードを実行するには、[Run (実行)]、[Run Configurations (実行設定)]の順に選択します。表示された実行設定タブで、[Runner: Auto (ランナー: 自動)]を選択し、使用したいランナーを選択してから[Run (実行)]を選択します。使用したいランナーがリストに表示されない場合は、この手順を停止して、「ビルダーまたはランナーを作成する」の手順を完了してから、この手順に戻ります。

コードをデバッグする

  1. コードの実行設定タブで、[Run in Debug Mode (デバッグモードで実行)]を選択します。バグアイコンが、白背景に緑に変わります。詳細については、「コードを実行する」および「実行設定を作成する」を参照してください。

  2. 次のように、実行中に一時停止したいブレークポイントをコード内に設定します。

    1. ブレークポイントを設定したい各ファイルを開きます。

    2. ファイル内のブレークポイントを設定したい各ポイントで、行番号の左にあるガーターの空白部分を選択します。赤い円が表示されます。

      ブレークポイントを削除するには、ガーターの既存のブレークポイントを選択します。

      ブレークポイントを削除ではなく無効にするには、[Debugger (デバッガー)]ウィンドウの[Breakpoints (ブレークポイント)]で、無効にしたいブレークポイントに該当するボックスのチェックを外します。ブレークポイントを再度有効にするには、クリアしたボックスを選択します。

      一度にすべてのブレークポイントを無効にするには、[Debugger (デバッガー)]ウィンドウで、[Deactivate All Breakpoints (すべてのブレークポイントを無効にする)]を選択します。すべてのブレークポイントを再度有効にするには、[Activate All Breakpoints (すべてのブレークポイントを有効にする)]を選択します。

      Debugger (デバッガー)]ウィンドウが非表示になっている場合は、[Debugger (デバッガー)]ボタンを選択します。[Debugger (デバッガー)]ボタンが非表示になっている場合は、メニューバーで[Window (ウィンドウ)]、[Debugger (デバッガー)]の順に選択します。

  3. 次のように、実行が一時停止するポイントで取得したい値のウォッチ式を設定します。

    1. Debugger (デバッガー)]ウィンドウの[Watch Expressions (ウォッチ式)]で、[Type an expression here (ここに式を入力)]を選択します。

    2. ウォッチしたい式を入力し、Enter を押します。

      既存のウォッチ式を変更するには、ウォッチ式を右クリックして、[Edit Watch Expression (ウォッチ式の編集)]を選択します。変更を入力し、Enter を押します。

      既存のウォッチ式を削除するには、ウォッチ式を右クリックして、[Remove Watch Expression (ウォッチ式の削除)]を選択します。

  4. コードを実行する」で説明されているようにコードを実行します。

実行が一時停止するたびに、次のように[Debugger (デバッガー)]ウィンドウで以下の操作を行うことができます。


            [Debugger (デバッガー)]ウィンドウのメニューバー

            [Debugger (デバッガー)]ウィンドウのセクション
  • 次のブレークポイントまでコードを実行する (またはブレークポイントがない場合は次の論理停止ポイントまで):[Resume (再開)]を選択します。

  • 次のメソッドまたは関数呼び出しまでステートメントごとに実行をスキップする:[Step Over (ステップオーバー)]を選択します。

  • コードを次のステートメントまで実行してから再度一時停止する:[Step Into (ステップイン)]を選択します。

  • 現在のメソッドまたは関数呼び出しのステートメントごとに実行を停止する:[Step Out (ステップアウト)]を選択します。

  • 既存のすべてのブレークポイントを無効にする:[Deactivate All Breakpoints (すべてのブレークポイントを無効にする)]を選択します。すべてのブレークポイントを再有効にする:[Activate All Breakpoints (すべてのブレークポイントを有効にする)]を選択します。

  • コードが例外をスローしても一時停止しない: ツールチップが[Don't pause on exceptions (例外で一時停止しない)](灰色) と表示されるまで、例外動作ボタンを選択し続けます。

  • コードが例外をスローした場合一時停止する: ツールチップが[Pause on all exceptions (すべての例外で一時停止する)](赤色) と表示されるまで、例外動作ボタンを選択し続けます。

  • コードがキャッチされない例外をスローした場合のみ時停止する: ツールチップが[Pause on uncaught exceptions (キャッチされない例外で一時停止する)](青色) と表示されるまで、例外動作ボタンを選択し続けます。

  • 使用可能なスクリプトを開く:[Available internal and external scripts (使用可能な内部および外部スクリプト)]を選択してから、スクリプトを選択します。

  • 現在のウォッチ式のリストを表示する:[Watch Expressions (ウォッチ式)]領域を参照します。

  • コードが現在のブレークポイントに至るまでの実行パスを表示する:[Call Stack (コールスタック)]領域を参照します。

  • ローカル変数のリストを表示する:[Local Variables (ローカル変数)]領域を参照します。

  • 個々のブレークポイントを無効にする:[Breakpoints (ブレークポイント)]で、無効にしたいブレークポイントに対応するボックスのチェックを外します。ブレークポイントを再度有効にするには、前にクリアしたボックスを選択します。

実行が一時停止するたびに、表示されたコードの任意の部分 (変数など) でポインタを一時停止することもできます。関連情報があればそれがツールチップで表示されます。

組み込みランナーを変更する

  1. メニューバーで、[Run (実行)]、[Run With (次で実行)]を選択し、変更したい組み込みランナーを選択します。

  2. ランナーでコードの実行を停止するには、表示された実行設定タブで[Stop (停止)]を選択します。

  3. Runner: My Runner (ランナー: マイランナー)]を選択します。ここでは、[My Runner]は変更したいランナーの名前です。次に[Edit Runner (ランナーの編集)]を選択します。

  4. 表示される[My Runner.run]タブで、ランナーの現在の定義を変更します。「ビルダーまたはランナーを定義する」を参照してください。

  5. File (ファイル)]、[Save As (名前を付けて保存)]の順に選択します。ファイルを同じ名前 (My Runner.run) で my-environment/.c9/runners ディレクトリに保存します。そこではmy-environment は AWS Cloud9 開発環境の名前です。

注記

組み込みランナーを変更した場合、それらの変更はその変更を行った環境にのみ適用されます。変更を別の 環境に適用するには、他の他の環境を開いて、前述のステップに従って組み込みランナーを開き、編集し、同じ変更を保存します。

実行設定を作成する

メニューバーで、[Run (実行)]、[Run Configurations (実行設定)]、[New Run Configuration (新しい実行設定)]の順に選択します。表示された実行設定タブで、次の操作を実行します。

  1. Run (実行)]および[Restart (再起動)]の横にあるボックスに、この実行設定の[Run (実行)]、[Run Configurations (実行設定)]メニューに表示する名前を入力します。

  2. Command (コマンド)]ボックスに、使用したいカスタムコマンドラインオプションを入力します。

  3. この実行設定でランナーの事前定義されたデバッグ設定を使用するには、[Run in Debug Mode (デバッグモードで実行)]を選択します。バグアイコンが、白背景で緑に変わります。

  4. この実行設定で特定の作業ディレクトリを使用するには、[CWD]を選択し、ディレクトリを選択して[Select (選択)]を選択します。

  5. この実行設定で特定の環境変数を使用するには、[ENV]を選択し、各環境変数の名前と値を入力します。

この実行設定を使用するには、実行したいコードに対応するファイルを開きます。メニューバーで、[Run (実行)]、[Run Configurations (実行設定)]の順に選択してから、実行設定の名前を選択します。表示された実行設定タブで、[Runner: Auto (ランナー: 自動)]を選択し、使用したいランナーを選択してから[Run (実行)]を選択します。

注記

作成された実行設定は、その実行設定がある環境のみに適用されます。実行設定を別の環境に追加するには、他の環境を開いて、その環境で前述のステップに従って同じ実行設定を作成します。

ビルダーまたはランナーを作成する

  1. ビルダーを作成するには、メニューバーで、[Run (実行)]、[Build System (ビルドシステム)]、[New Build System (新しいビルドシステム)]の順に選択します。ランナーを作成するには、メニューバーで、[Run (実行)]、[Run With (次で実行)]、[New Runner (新しいランナー)]の順に選択します。

  2. 表示されたビルダータブ ([My Builder.build]というラベル) またはランナータブ ([My Runner.run]というラベル) で、ビルダーまたはランナーを定義します。「ビルダーまたはランナーを定義する」を参照してください。

  3. ビルダーまたはランナーを定義した後、[File (ファイル)]、[Save As (名前を付けて保存)]の順に選択します。ビルダーの場合は、.build という拡張子でファイルを my-environment/.c9/builders ディレクトリに保存します。my-environment は 環境の名前です。ランナーの場合は、.run というファイル拡張子でファイルを my-environment/.c9/runners ディレクトリに保存します。my-environment は環境の名前です。指定されたファイル名が、[Run (実行)]、[Build System (ビルドシステム)]メニュー (ビルダーの場合) または[Run (実行)]、[Run With (次で実行)]メニュー (ランナーの場合) に表示される名前です。したがって、別のファイル名を指定しない限り、デフォルトでは表示名は[My Builder](ビルダーの場合) または[My Runner](ランナーの場合) になります。

このビルダーまたはランナーを使用するには、「プロジェクトのファイルを構築する」または「コードを実行する」を参照してください。

注記

作成したビルダーまたはランナーは、そのビルダーまたはランナーを作成した環境のみに適用されます。ビルダーまたはランナーを別の環境に追加するには、他の環境を開いて、その環境で前述のステップに従って同じビルダーまたはランナーを作成します。

ビルダーまたはランナーを定義する

この手順では、[Run (実行)]、[Build System (ビルドシステム)]、[New Build System (新しいビルドシステム)](ビルダーの場合) または[Run (実行)]、[Run With (次で実行)]、[New Runner (新しいランナー)](ランナーの場合) を選択してビルダーまたはランナーの作成を開始していることを前提としています。

表示されたビルダーまたはランナータブで、JSON を使用してランナーまたはビルダーを定義します。次のコードをテンプレートとして使用して開始します。

ビルダーの場合は、このコードで開始します。

{ "cmd": [], "info": "", "env": {}, "selector": "" }

ランナーの場合は、このコードで開始します。

{ "cmd": [], "script": "", "working_dir": "", "info": "", "env": {}, "selector": "", "debugger": "", "debugport": "" }

上記のコードでは:

  • cmd: AWS Cloud9 が 1 つのコマンドとして実行するカンマ区切りの文字列リストを表します。

    AWS Cloud9 によってこのコマンドが実行される場合、リストの各文字列はスペースで区切られます。たとえば、AWS Cloud9 は"cmd": [ "ls", "$file", "$args"]ls $file $args として実行します。ここで AWS Cloud9 により $file が現在のファイルの完全パスに置き換えられ、$args がファイル名の後に入力された引数に置き換えられます。詳細については、このセクションで後述するサポートされている変数のリストを参照してください。

  • script: ランナーがターミナルで実行する Bash スクリプトを表します (読みやすくするために行の配列として指定することもできます)。

  • working_dir: ランナーが実行されるディレクトリを表します。

  • info: 実行開始時にユーザーに表示したい任意の文字列を表します。この文字列には変数を含めることができます。たとえば Running $project_path$file_name... の場合、AWS Cloud9 により $project_path が現在のファイルのディレクトリパスに置き換えられ、$file_name が現在のファイルの名前の一部に置き換えられます。このセクションで後述するサポートされている変数のリストを参照してください。

  • env: AWS Cloud9 が使用する任意のコマンドライン引数の配列を表します。次に例を示します。

    "env": { "LANG": "en_US.UTF-8", "SHLVL": "1" }
  • selector: AWS Cloud9 がこのランナーを適用するファイル名を識別するために使用する正規表現を表します。たとえば、source.py で Python ファイルを指定できます。

  • debugger: AWS Cloud9 で使用する、このランナーと互換性がある使用可能なデバッガーの名前を表します。たとえば、V8 デバッガーには v8 を指定できます。

  • debugport: AWS Cloud9 がデバッグ中に使用するポート番号を示します。たとえば、使用するポート番号に 15454 を指定できます。

次の表に、使用できる変数を示します。

変数 説明

$file_path

現在のファイルのディレクトリ。たとえば /home/ec2-user/environment/home/ubuntu/environment です。

$file

現在のファイルの完全パス。たとえば /home/ec2-user/environment/hello.py/home/ubuntu/environment/hello.py です。

$args

ファイル名の後に入力する任意の引数。たとえば "5" "9" です。

$file_name

現在のファイルの名前の一部。たとえば hello.py です。

$file_extension

現在のファイルの拡張子。たとえば py です。

$file_base_name

ファイル拡張子を付けない現在のファイルの名前。たとえば hello です。

$packages

パッケージフォルダの完全パス。

$project

現在のプロジェクトフォルダの完全パス。

$project_path

現在のプロジェクトのディレクトリ。たとえば /home/ec2-user/environment//home/ubuntu/environment/ です。

$project_name

ファイル拡張子を付けない現在のプロジェクトの名前。たとえば my-demo-environment です。

$project_extension

現在のプロジェクトファイルの拡張子。

$project_base_name

拡張子を付けない現在のプロジェクトの名前。

$hostname

環境のホスト名。たとえば 192.0.2.0 です。

$hostname_path

プロジェクトファイルへの相対パスを含む環境のホスト名。たとえば https://192.0.2.0/hello.js です。

$url

環境にアクセスする完全な URL。たとえば https://192.0.2.0. です。

$port

環境に割り当てられたポート。たとえば 8080 です。

$ip

環境に対してプロセスを実行する IP アドレス。たとえば 0.0.0.0 です。

例として、次の G++.build という名前のビルダーファイルは、-o オプションを指定した g++ コマンドを実行して現在のファイル (例: hello.cpp) をオブジェクトモジュールにコンパイルする GCC のビルダーを定義します。次に、オブジェクトモジュールを現在のファイルと同じ名前 (例: hello) でプログラムにリンクします。ここでは、g++ -o hello hello.cpp が同等のbuコマンドです。

{ "cmd": [ "g++", "-o", "$file_base_name", "$file_name" ], "info": "Compiling $file_name and linking to $file_base_name...", "selector": "source.cpp" }

別の例として、次の Python.run という名前のランナーファイルは、Python を使用し、任意の引数を指定して現在のファイルを実行するランナーを定義します。たとえば、現在のファイルが hello.py という名前であり、引数に 5 および 9 を指定する場合、同等のコマンドは python hello.py 5 9 です。

{ "cmd": [ "python", "$file_name", "$args" ], "info": "Running $file_name...", "selector": "source.py" }

最後に、次の Print Run Variables.run という名前のランナーファイルは、使用できる変数ごとの値を単純に出力してから停止するランナーを定義します。

{ "info": "file_path = $file_path, file = $file, args = $args, file_name = $file_name, file_extension = $file_extension, file_base_name = $file_base_name, packages = $packages, project = $project, project_path = $project_path, project_name = $project_name, project_extension = $project_extension, project_base_name = $project_base_name, hostname = $hostname, hostname_path = $hostname_path, url = $url, port = $port, ip = $ip" }