在 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. 如「執行您的程式碼」中所述來執行您的程式碼。

每當執行暫停,您可以將指標停留在顯示的任何程式碼片段 (例如變數) 上,以便在工具提示中顯示任何可用的相關資訊。

變更內建執行器

  1. 在選單列上,選擇 Run, Run With (執行、執行工具),然後選擇您希望變更的內建執行器。

  2. 選擇執行組態標籤上顯示的 Stop (停止) 使執行器停止嘗試執行您的程式碼。

  3. 選擇 Runner: My Runner (執行器:我的執行器),其中 My Runner (我的執行器) 即為您希望變更的執行器名稱,然後選擇 Edit Runner (編輯執行器)

  4. 在顯示的 My Runner.run (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 (我的 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 的逗號分隔字串清單,用於執行單一命令。

    當 AWS Cloud9 執行此命令時,清單中的每個字串會以單一空格分隔。例如,AWS Cloud9 將以 ls $file $args 來執行 "cmd": [ "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 用於連接埠號碼。

下列資料表顯示您可以使用的變數。

變數 Description (描述)

$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++ 命令的 GCC 來定義建置器,以將目前檔案 (例如 hello.cpp) 編譯至物件模組。然後會將物件模組以與目前檔案相同的名稱 (例如 hello) 連結至程式。在此處,相同的命令為 g++ -o hello hello.cpp

{ "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,且己提供 59 引數,則相同的命令為 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" }