在 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 选项卡上,更改运行程序的当前定义。请参阅定义生成器或运行程序

  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 可将其作为单个命令运行。

    当 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 用于标识文件名的任何正则表达式,这些文件名将应用于此运行程序。例如,您可以为 Python 文件指定 source.py

  • 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 的以下生成器文件为 GCC 定义一个生成器,它运行 g++ 命令以及 -o 选项以将当前文件(例如 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" }