云服务器内容精选

  • 提交训练作业并调试 当创建训练作业的参数配置完成后,单击“提交”,在信息确认页面单击“确定”,提交创建训练作业任务。 在训练作业列表中,刚创建的训练作业状态为“等待中”。 在训练作业列表中,当训练作业的状态变为“运行中”时,单击操作列的“打开”弹出JupyterLab页面,即可进行训练代码调试。 JupyterLab页面左侧会显示训练代码文件,JupyterLab的使用请参见JupyterLab简介及常用操作。 当创建的调试训练作业开启了SSH远程开发时,在训练作业详情页获取“SSH远程开发”参数后的“密钥对”和SSH地址信息后,可以使用本地IDE远程连接到调试训练作业中进行代码调试。 训练作业运行过程中将按照选择的资源进行计费。
  • 选择自定义算法创建方式 只支持使用 自定义镜像 创建调试训练作业。 表2 选择调试训练作业的创建方式 参数名称 说明 创建方式 固定选择“自定义算法”。 启动方式 固定选择“自定义”。 镜像 必填,填写容器镜像的地址。 容器镜像地址的填写支持如下方式。 选择自有镜像或他人共享的镜像:单击右边的“选择”,从容器镜像中选择用于训练的容器镜像。所需镜像需要提前上传到SWR服务中。 选择公开镜像:直接输入SWR服务中公开镜像的地址。地址直接填写“组织名称/镜像名称:版本名称”,不需要带 域名 信息,系统会自动拼接域名地址。 代码目录 选择训练代码文件所在的OBS目录。如果自定义镜像中不含训练代码则需要配置该参数,如果自定义镜像中已包含训练代码则不需要配置。 需要提前将代码上传至OBS桶中,目录内文件总大小要小于或等于5GB,文件数要小于或等于1000个,文件深度要小于或等于32。 训练代码文件会在训练作业启动的时候被系统自动下载到训练容器的“${MA_JOB_DIR}/demo-code”目录中,“demo-code”为存放代码目录的最后一级OBS目录。例如,“代码目录”选择的是“/test/code”,则训练代码文件会被下载到训练容器的“${MA_JOB_DIR}/code”目录中。 运行用户ID 容器运行时的用户ID,该参数为选填参数,建议使用默认值1000。 如果需要指定uid,则uid数值需要在规定范围内,专属资源池的uid范围是1~65535。同时,自定义镜像必须存在“/home/ma-user”目录,且“/home/ma-user”目录的属主为指定uid,属组为指定uid对应的gid。 本地代码目录 指定训练容器的本地目录,启动训练时系统会将代码目录下载至此目录。 此参数可选,默认本地代码目录为“/home/ma-user/modelarts/user-job-dir”。 工作目录 训练时,系统会自动cd到此目录下执行启动文件。
  • 配置训练参数 训练过程中可以从OBS桶或者数据集中获取输入数据进行模型训练,训练输出的结果也支持存储至OBS桶中。创建训练作业时可以参考表3配置输入、输出、超参、环境变量等参数。 表3 配置训练参数 参数名称 子参数 说明 输入 参数名称 算法代码需要通过“输入”的“参数名称”去读取训练的输入数据。 建议设置为“data_url”。训练输入参数要与所选算法的“输入”参数匹配,请参见创建算法时的表4。 数据集 单击“数据集”,在ModelArts数据集列表中勾选目标数据集并选择对应的版本。 训练启动时,系统将自动下载输入路径中的数据到训练运行容器。 说明: ModelArts数据管理模块在重构升级中,对未使用过数据管理的用户不可见。建议新用户将训练数据存放至OBS桶中使用。 数据存储位置 单击“数据存储位置”,从OBS桶中选择训练输入数据的存储位置。 训练启动时,系统将自动下载输入路径中的数据到训练运行容器。 获取方式 以参数名称为“data_path”的训练输入为例,说明获取方式的作用。 当参数的“获取方式”为“超参”时,可以参考如下代码来读取数据。 import argparse parser = argparse.ArgumentParser() parser.add_argument('--data_path') args, unknown = parser.parse_known_args() data_path = args.data_path 当参数的“获取方式”为“环境变量”时,可以参考如下代码来读取数据。 import os data_path = os.getenv("data_path", "") 输出 参数名称 算法代码需要通过“输出”的“参数名称”去读取训练的输出目录。 建议设置为“train_url”。训练输出参数要与所选算法的“输出”参数匹配,请参见创建算法时的表5。 数据存储位置 单击“数据存储位置”,从OBS桶中选择训练输出数据的存储位置。训练过程中,系统将自动从训练容器的本地代码目录下同步文件到数据存储位置。 说明: 数据存储位置仅支持OBS路径。为避免数据存储冲突,建议选择一个空目录用作“数据存储位置”。 获取方式 以参数名称为“train_url”的训练输出为例,说明获取方式的作用。 当参数的“获取方式”为“超参”时,可以参考如下代码来读取数据。 import argparse parser = argparse.ArgumentParser() parser.add_argument('--train_url') args, unknown = parser.parse_known_args() train_url = args.train_url 当参数的“获取方式”为“环境变量”时,可以参考如下代码来读取数据。 import os train_url = os.getenv("train_url", "") 预下载至本地目录 选择是否将输出目录下的文件预下载至本地目录。 不下载:表示启动训练作业时不会将输出数据的存储位置中的文件下载到训练容器的本地代码目录中。 下载:表示系统会在启动训练作业时自动将输出数据的存储位置中的所有文件下载到训练容器的本地代码目录中。下载时间会随着文件变大而变长,为了防止训练时间过长,请及时清理训练容器的本地代码目录中的无用文件。如果要使用设置断点续训练,则必须选择“下载”。 超参 - 超参用于训练调优。此参数由选择的算法决定,如果在算法中已经定义了超参,则此处会显示算法中所有的超参。 超参支持修改和删除,状态取决于算法中的超参“约束”设置,详情请参见创建算法时的定义超参。 说明: 为保证数据安全,请勿输入敏感信息,例如明文密码。 环境变量 - 根据业务需求增加环境变量。训练容器中预置的环境变量请参见管理训练容器环境变量。 说明: 为保证数据安全,请勿输入敏感信息,例如明文密码。 自动重启 - 打开开关后,可以设置重启次数和是否启用无条件自动重启。 打开自动重启开关后,当由于环境问题导致训练作业异常时,系统将自动修复异常或隔离节点,并重启训练作业,提高训练成功率。为了避免丢失训练进度、浪费算力,开启此功能前请确认代码已适配断点续训,操作指导请参见设置断点续训练。 重启次数的取值范围是1~128,缺省值为3。创建训练后不支持修改重启次数,请合理设置次数。 勾选无条件自动重启后,只要系统检测到训练异常,就无条件重启训练作业。为了避免无效重启浪费算力资源,系统最多只支持连续无条件重启3次。 当训练过程中触发了自动重启,则系统会记录重启信息,在训练作业详情页可以查看故障恢复详情,具体请参见训练作业重调度。
  • 前提条件 已经将用于训练作业的数据上传至OBS目录。 已经在OBS目录下创建了至少1个空的文件夹,用于存储训练输出的内容。 ModelArts不支持加密的OBS桶,创建OBS桶时,请勿开启桶加密。 由于训练作业运行需消耗资源,为了避免训练失败请确保账户未欠费。 确保使用的OBS目录与ModelArts在同一区域。 检查是否配置了访问授权。如果未配置,请参见使用委托授权完成操作。 已经上传镜像到SWR服务中。 已经准备好训练作业的专属资源池。如需新建资源池请参见创建资源池。
  • 配置调试训练作业基本信息 在创建训练作业页面填写调试训练作业的基本信息。 表1 调试训练作业的基本信息 参数名称 说明 名称 必填,训练作业的名称。 系统会自动生成一个名称,可以根据业务需求重新命名,命名规则如下: 支持1~64位字符。 可以包含大小写字母、数字、中划线(-)或下划线(_)。 描述 训练作业的简介,便于在训练作业列表了解作业信息。 设置实验 将训练作业分类有序地放入实验中进行管理。 如果选择“纳入新实验”,需要配置“新建实验名称”和“新建实验描述”。 如果选择“纳入已有实验”,需要选择“实验名称”。 如果选择“不纳入实验”,则不在实验中进行统一管理。 作业模式 创建调试训练作业时,必须选择“调试模型”。如果选择“生产模式”,则请参考创建生产训练作业创建生产训练作业。 SSH远程开发 选择是否启用SSH远程开发功能。 默认关闭,不启用SSH远程开发,只支持使用JupyterLab调试训练作业。打开后,启用SSH远程开发,则必须配置“密钥对”,此时支持使用JupyterLab或本地IDE调试训练作业。 密钥对 启用SSH远程开发时,必须配置密钥对。 可以选择已有密钥对,也可以单击“立即创建”新建密钥对,具体操作请参见创建密钥对。 说明: 创建好的密钥对,请下载并妥善保管,使用本地IDE远程连接到调试训练作业时需要使用密钥对进行鉴权认证。 训练应用程序 默认使用JupyterLab,支持去勾选。 创建调试作业时,建议SSH远程开发和JupyterLab至少启用一个。
  • 分词器测试 函数ts_debug允许简单测试文本搜索分词器。 1 2 3 4 5 6 7 8 ts_debug([ config regconfig, ] document text, OUT alias text, OUT description text, OUT token text, OUT dictionaries regdictionary[], OUT dictionary regdictionary, OUT lexemes text[]) returns setof record ts_debug显示document的每个token信息,token是由解析器生成,由指定的词典进行处理。如果忽略对应参数,则使用config指定的分词器或者default_text_search_config指定的分词器。 ts_debug为文本解析器标识的每个token返回一行记录。记录中的列分别是: alias:text类型,token的别名。 description:text类型,token的描述。 token:text类型,token的文本内容。 dictionaries:regdictionary数组类型,是分词器为token选定的词典。 dictionary:regdictionary类型,用来识别token的词典。如果为空,则不做识别。 lexemes:text数组类型,词典识别token时生成的词素。如果为空,则不生成词素。空数组({})意味着token将被识别成停用词。 一个简单的例子: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 SELECT * FROM ts_debug('english','a fat cat sat on a mat - it ate a fat rats'); alias | description | token | dictionaries | dictionary | lexemes -----------+-----------------+-------+----------------+--------------+--------- asciiword | Word, all ASCII | a | {english_stem} | english_stem | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | fat | {english_stem} | english_stem | {fat} blank | Space symbols | | {} | | asciiword | Word, all ASCII | cat | {english_stem} | english_stem | {cat} blank | Space symbols | | {} | | asciiword | Word, all ASCII | sat | {english_stem} | english_stem | {sat} blank | Space symbols | | {} | | asciiword | Word, all ASCII | on | {english_stem} | english_stem | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | a | {english_stem} | english_stem | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | mat | {english_stem} | english_stem | {mat} blank | Space symbols | | {} | | blank | Space symbols | - | {} | | asciiword | Word, all ASCII | it | {english_stem} | english_stem | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | ate | {english_stem} | english_stem | {ate} blank | Space symbols | | {} | | asciiword | Word, all ASCII | a | {english_stem} | english_stem | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | fat | {english_stem} | english_stem | {fat} blank | Space symbols | | {} | | asciiword | Word, all ASCII | rats | {english_stem} | english_stem | {rat} (24 rows) 父主题: 测试和调试文本搜索
  • 分词器测试 函数ts_debug允许简单测试文本搜索分词器。 1 2 3 4 5 6 7 8 ts_debug([ config regconfig, ] document text, OUT alias text, OUT description text, OUT token text, OUT dictionaries regdictionary[], OUT dictionary regdictionary, OUT lexemes text[]) returns setof record ts_debug显示document的每个token信息,token是由解析器生成,由指定的词典进行处理。如果忽略对应参数,则使用config指定的分词器或者default_text_search_config指定的分词器。 ts_debug为文本解析器标识的每个token返回一行记录。记录中的列分别是: alias:text类型,token的别名。 description:text类型,token的描述。 token:text类型,token的文本内容。 dictionaries:regdictionary数组类型,是分词器为token选定的词典。 dictionary:regdictionary类型,用来识别token的词典。如果为空,则不做识别。 lexemes:text数组类型,词典识别token时生成的词素。如果为空,则不生成词素。空数组({})意味着token将被识别成停用词。 一个简单的例子: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 SELECT * FROM ts_debug('english','a fat cat sat on a mat - it ate a fat rats'); alias | description | token | dictionaries | dictionary | lexemes -----------+-----------------+-------+----------------+--------------+--------- asciiword | Word, all ASCII | a | {english_stem} | english_stem | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | fat | {english_stem} | english_stem | {fat} blank | Space symbols | | {} | | asciiword | Word, all ASCII | cat | {english_stem} | english_stem | {cat} blank | Space symbols | | {} | | asciiword | Word, all ASCII | sat | {english_stem} | english_stem | {sat} blank | Space symbols | | {} | | asciiword | Word, all ASCII | on | {english_stem} | english_stem | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | a | {english_stem} | english_stem | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | mat | {english_stem} | english_stem | {mat} blank | Space symbols | | {} | | blank | Space symbols | - | {} | | asciiword | Word, all ASCII | it | {english_stem} | english_stem | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | ate | {english_stem} | english_stem | {ate} blank | Space symbols | | {} | | asciiword | Word, all ASCII | a | {english_stem} | english_stem | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | fat | {english_stem} | english_stem | {fat} blank | Space symbols | | {} | | asciiword | Word, all ASCII | rats | {english_stem} | english_stem | {rat} (24 rows) 父主题: 测试和调试文本搜索
  • Notebook容器挂载目录介绍 创建Notebook实例,存储选择EVS时,Notebook会使用/home/ma-user/work目录作为用户的工作空间持久化存储。 存放在work目录的内容,在实例停止、重新启动后依然保留,其他目录下的内容不会保留,使用开发环境时建议将需要持久化的数据放在/home/ma-user/work目录。 更多Notebook实例的目录挂载情况(以下挂载点在保存镜像的时候不会保存)如表4所示。 表4 Notebook挂载目录介绍 挂载点 是否只读 备注 /home/ma-user/work/ 否 客户数据的持久化目录。 /data 否 客户PFS的挂载目录。 /cache 否 裸机规格时支持,用于挂载宿主机NVMe的硬盘。 /train-worker1-log 否 兼容训练任务调试过程。 /dev/shm 否 用于PyTorch引擎加速。
  • 打开Notebook实例 针对创建好的Notebook实例(即状态为“运行中”的实例),可以打开Notebook并在开发环境中启动编码。 pytorch、tensorflow、mindspore、tensorflow-mindspore、cylp-cbcpy、rlstudio-ray、mindquantum-mindspore镜像支持以下2种方式访问: 在线JupyterLab访问,具体参见通过JupyterLab在线使用Notebook实例进行AI开发。 本地IDE使用PyCharm工具,远程连接访问,具体参见通过PyCharm远程使用Notebook实例。 本地IDE使用VS Code工具,远程连接访问,具体参见通过VS Code远程使用Notebook实例。 本地IDE使用SSH工具,远程连接访问,具体参见通过SSH工具远程使用Notebook。 ModelArts提供的Notebook实例是以ma-user启动的,用户进入实例后,工作目录默认是/home/ma-user。
  • 背景信息 Notebook使用涉及到计费,具体收费项如下: 处于“运行中”状态的Notebook,会消耗资源,产生费用。根据您选择的资源不同,收费标准不同,价格详情请参见产品价格详情。当您不需要使用Notebook时,建议停止Notebook,避免产生不必要的费用。 创建Notebook时,如果选择使用云硬盘EVS存储配置,实例不删除,云硬盘EVS会一直收费,建议及时停止并删除Notebook,避免产品不必要的费用。 在创建Notebook时,默认会开启自动停止功能,在指定时间内停止运行Notebook,避免资源浪费。 只有处于“运行中”状态的Notebook,才可以执行打开、停止操作。 一个账户最多创建10个Notebook。
  • Notebook选择存储说明 不同存储的实现方式都不同,在性能、易用性、成本的权衡中可以有不同的选择,没有一个存储可以覆盖所有场景,了解下云上开发环境中各种存储使用场景说明,更能提高使用效率。 表5 云上开发环境中各种存储使用场景说明 存储类型 建议使用场景 优点 缺点 云硬盘EVS 比较适合只在开发环境中做数据、算法探索,性能较好。 块存储SSD,可以理解为一个磁盘,整体IO性能比NFS要好,可以动态扩充,最大可以到4096GB。 云硬盘EVS作为持久化存储挂载在/home/ma-user/work目录下,该目录下的内容在实例停止后会被保留,存储支持在线按需扩容。 只能在单个开发环境中使用 。 并行文件系统PFS 说明: 并行文件系统PFS为白名单功能,如需使用,请联系华为技术支持开通。 仅支持挂载同一区域下的OBS并行文件系统(PFS)。 适合直接使用PFS桶作为持久化存储进行AI开发和探索,使用场景如下。 数据集的存储。将存储在PFS桶的数据集直接挂载到Notebook进行浏览和数据处理,在训练时直接使用。直接在创建Notebook的时候选择并行文件系统PFS。 或在实例运行后,将承载数据集的OBS并行文件系统动态挂载至Notebook中,详细操作请参考动态挂载OBS并行文件系统。 代码的存储。在Notebook调测完成,可以直接指定对应的对象存储路径作为启动训练的代码路径,方便临时修改。 训练观测。可以将训练日志等输出路径进行挂载,在Notebook中实时查看和观测,特别是利用TensorBoard可视化功能完成对训练输出的分析。 PFS是一种经过优化的高性能对象存储文件系统,存储成本低,吞吐量大,能够快速处理高性能计算(HPC)工作负载。在需要使用 对象存储服务 场景下,推荐使用PFS挂载。 说明: 建议上传时按照128MB或者64MB打包或者切分,使用时边下载边解压后在本地存储读取,以获取更好的读写与吞吐性能。 小文件频繁读写性能较差,例如直接作为存储用于模型重型训练,大文件解压等场景慎用。 说明: PFS挂载需要用户对当前桶授权给ModelArts完整读写权限,Notebook删除后,此权限策略不会被删除。 对象存储服务OBS 说明: OBS对象存储为白名单功能,如需使用,请联系华为技术支持开通。 仅支持挂载同一区域下的OBS对象存储。 在开发环境中做大规模的数据上传下载时,可以通过OBS桶做中转。 存储成本低,吞吐量大,但是小文件读写较弱。建议上传时按照128MB或者64MB打包或者切分,使用时边下载边解压后在本地读取。 对象存储语义,和Posix语义有区别,需要进一步理解。 弹性文件服务SFS 目前只支持在专属资源池中使用;针对探索、实验等非正式生产场景,建议使用这种。开发环境和训练环境可以同时挂载一块SFS存储,省去了每次训练作业下载数据的要求,一般来说重IO读写模型,超过32卡的大规模训练不适合。 实现为NFS,可以在多个开发环境、开发环境和训练之间共享,如果不需要重型分布式训练作业,特别是启动训练作业时,不需要额外再对数据进行下载,这种存储便利性可以作为首选。 性能比EVS云硬盘块存储低。 本地存储 重型训练任务首选 运行所在虚拟机或者裸金属机器上自带的SSD高性能存储,文件读写的吞吐量大,建议对于重型训练任务先将数据准备到对应目录再启动训练。 默认在容器/cache目录下进行挂载,/cache目录可用空间请参考开发环境中不同Notebook规格资源“/cache”目录的大小。 存储生命周期和容器生命周期绑定,每次训练都要下载数据。 在开发环境中如何使用云硬盘EVS块存储? 例如,在创建Notebook实例时选择云硬盘EVS存储小容量,Notebook运行过程中如果发现存储容量不够,可以扩容,请参考动态扩充云硬盘EVS容量。 在开发环境中如何使用OBS并行文件系统? 例如,在Notebook中训练时,可直接使用挂载至Notebook容器中的数据集,在运行过程中可以动态挂载OBS并行文件系统。
  • 查看训练日志 查看训练日志有2种方式,在OBS查看和在PyCharm ToolKit工具中查看。 在OBS查看训练日志 提交训练作业时,系统将自动在您配置的OBS Path中,使用作业名称创建一个新的文件夹,用于存储训练输出的模型、日志和代码。 例如“train-job-01”作业,提交作业时会在“test-modelarts2”桶下创建一个命名为“train-job-01”的文件夹,且此文件夹下分别新建了三个文件夹“output”、“log”、“code”,分别用于存储输出模型、日志和训练代码。“output”文件夹还会根据您的训练作业版本再创建子文件夹,结构示例如下。 test-modelarts2 |---train-job-01 |---output |---log |---code
  • Notebook使用场景 ModelArts提供灵活开放的开发环境,您可以根据实际情况选择。 ModelArts提供了CodeLab功能,一方面,一键进入开发环境,同时预置了免费的算力规格,可直接 免费体验 Notebook功能;另一方面,针对AI Gallery社区发布的Notebook样例(.ipynb格式文件),可直接在CodeLab中打开,查看他人分享的样例代码,具体请参见使用CodeLab免费体验Notebook。 ModelArts提供了云化版本的Notebook,无需关注安装配置,即开即用,具体参见创建Notebook实例。 ModelArts Notebook支持以下几种使用方式,用于开发基于PyTorch、TensorFlow和MindSpore等引擎的AI模型。 支持通过JupyterLab工具在线打开Notebook,具体请参见通过JupyterLab在线使用Notebook实例进行AI开发。 支持本地IDE的方式开发模型,通过开启SSH连接,用户本地IDE可以远程连接到ModelArts的Notebook开发环境中,调试和运行代码。本地IDE方式不影响用户的编码习惯,并且可以方便快捷的使用云上的Notebook开发环境。 本地IDE当前支持VS Code、PyCharm、SSH工具。PyCharm和VS Code还分别有专门的插件PyCharm Toolkit、VS Code Toolkit,让远程连接操作更便捷。具体参见通过PyCharm远程使用Notebook实例、通过VS Code远程使用Notebook实例、本地IDE(SSH工具连接)。 在AI开发过程中,如何将文件方便快速地上传到Notebook几乎是每个开发者都会遇到的问题。ModelArts提供了多种文件上传方式,在文件上传过程中,可以查看上传进度和速度。 将本地文件上传,请参考支持上传本地文件; GitHub的开源仓库的文件上传,请参考支持Clone GitHub开源仓库; 存放在OBS中的文件上传,请参考支持上传OBS文件; 类似开源数据集这样的远端文件上传,请参考支持上传远端文件; 在Notebook的使用中,可以快速查找实例,可以在同一个Notebook实例中切换镜像,方便用户灵活调整实例的AI引擎;可以切换节点运行规格,方便用户灵活调整规格资源;可以初期存储使用量较小时选择小存储,可以在创建完成后根据需要扩充EVS容量;使用动态挂载OBS将OBS对象存储模拟成本地文件系统;还可以在Notebook异常时查看实例的事件定位等,具体参见管理Notebook实例。 ModelArts CLI,集成在ModelArts开发环境Notebook中,用于连接ModelArts服务并在ModelArts资源上执行管理命令。ma-cli支持用户在ModelArts Notebook及线下虚拟机中与云端服务交互,使用ma-cli命令可以实现命令自动补全、鉴权、镜像构建、提交ModelArts训练作业、提交 DLI Spark作业、OBS数据复制等,具体参见ModelArts CLI命令参考。 ModelArts Notebook内置MoXing Framework模块,ModelArts mox.file提供了一套更为方便的访问OBS的API,允许用户通过一系列模仿操作本地文件系统的API来操作OBS文件。具体参见在Notebook中使用Moxing命令。 父主题: 使用Notebook进行AI开发调试
  • 从代码编辑器启动调试会话 如果您不打算向您的程序传递任何参数,可以直接从代码编辑器开始一个调试会话。 在Python文件的代码编辑器中,单击编辑器边缘中的运行按钮(),并从弹出菜单中选择“调试”。或者,您可以右键单击代码编辑器,从上下文菜单中选择“调试 Python 文件”。Python 文件启动配置将被创建并自动运行。 创建的启动配置会自动保存,之后你可以在任何时候从CodeArts IDE主工具栏上的配置列表中选择它。 父主题: 在调试模式下运行程序
  • 控制程序执行 启动调试会话后,您可以使用调试工具栏操作控制程序执行。 图标 对应动作 快捷键 描述 / 暂停/继续 “F5” / “F8” / “F9” (IDEA快捷键) 暂停/恢复调试会话。 单步跳过 “F10” / “F6” / “F8” (IDEA快捷键) 跳过当前代码行到下一行。如果当前行中有方法调用,则会跳过它们的实现,以便您移至调用者方法的下一行。 单步调试 “F11” / “F5” / “F7” (IDEA快捷键) 进入方法里展示实现代码。 单步跳出 “Shift+F11” / “F7” / “Shift+F8” (IDEA快捷键) 跳出当前方法并跳转到调用者方法。 重启 “Ctrl+Shift+F5” / “Shift+F9” (IDEA快捷键) 重启调试会话。 停止 “Shift+F5” / “Ctrl+F2” 停止调试会话。 运行到光标处 “Alt+F9”(IDEA快捷键) 恢复调试会话,在光标处暂停。 运行到光标处 进入目标单步执行 父主题: 调试