Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

SLAX 调试器、分析器和调用流

SLAX 调试器、分析器和调用流概述

Junos OS 命令行界面 (CLI) 和 libslax 分布包括 SLAX 分断器 (sdb),用于跟踪 SLAX 脚本的执行情况。SLAX 支持您逐步查看脚本执行,在定义的断点暂停脚本执行,以及随时查看脚本变量的值。

SLAX 调试操作和命令语法类似于 SLAX 项目调试器 (GDB)。许多 sdb 命令尽可能跟随其 GDB 命令。 表 1 列出了 SLAX 的一些命令,并简要介绍了每个命令。

SLAX 包含一个分析器,可以报告有关脚本的活动和性能信息。分析器在启动调试器时会自动启用,可跟踪脚本执行,直至脚本终止。随时都可以显示或清除分析信息,并暂时禁用或启用分析器。当您进入或退出脚本级别时,SLAX 调试 callflow 命令支持打印信息数据。

表 1:SLAX 分图器命令

命令

描述

中断 [loc]

在当前的执行行向脚本添加一个断点。或者指定 [file:]line 或模板名称,以创建该位置的断点。

调用流 [开 | 关]

启用或禁用呼叫流跟踪。您可以显式指定 onoff 值。省略值切换调用流打开和关闭。

继续 [loc]

继续运行脚本,直到到达下一个断点。如果没有定义的断点,则脚本将整体运行。或者,指定 [file:]line 或模板名称。包括可选参数时,脚本执行将继续执行,直到其到达断点或指定的行号或模板名称(以哪个为先)。

删除 [num]

删除一个或所有断点。断点在创建时按顺序编号。省略可选参数以删除所有断点。将断点编号作为参数包括在内,可仅删除指定的断点。使用 info 命令查看当前活动的断点。

完成

完成执行当前模板。

帮助

显示帮助消息。

信息 [断点 | 个人资料 | 个人资料简介]

显示有关当前脚本的信息。默认命令会列出脚本中的所有断点。或者,指定 profileprofile brief 参数以显示分析信息。

列表 [loc]

列出当前脚本的内容。或者指定 [file:]line 或模板名称,从该位置列出部分脚本内容。输出包括文件名、行号和代码。

执行下一个指令,逐步执行任何功能或模板调用。

超过

执行下一个指令,逐步执行任何功能、模板调用或指令层次结构。

打印<xpath>

打印 XPath 表达式的值。

配置文件 [清除 | on | off | 报告 | 报告简报]

启用或禁用分析器。默认情况下,分析器处于启用状态。

包括清除 clear 分析信息的选项。 report 添加或 report brief 选项以显示当前脚本的分析信息。

退出

退出调试模式。

重新 加载

重新加载脚本。

运行

从脚本开头重新启动脚本执行。

执行下一个指令,深入了解任何功能、模板调用或指令层次结构。

其中

显示模板调用的回溯。

如何使用 SLAX 分图器、分析器和调用流

调用 SLAX 调试器

Junos OS CLI 和 libslax 分布中的 SLAX 处理器都包括 SLAX 调试器 (sdb),用于跟踪 SLAX 脚本的执行情况。

调用 SLAX 调试器时,命令行提示符将变为 (sdb),以表示您处于调试模式。例如:

使用 Junos OS CLI 中的 SLAX 功能时,只能对配置中启用的操作脚本使用调试器。要在运行 Junos OS 的设备上的 CLI 中调用 SLAX 调试器,请 op invoke-debugger cli 发出操作模式命令,包括操作脚本名称,并根据需要包括任何必要的脚本参数。

以下示例为 op 脚本 ge-interfaces 调用 SLAX 调试器 。slax,它具有两个参数 interfaceprotocol。为这两个参数提供值。

要使用 SLAX 处理器时调用 SLAX 调试器,请使用slaxproc-d 选项发出命令--debug。指定脚本文件以及所有输入或输出文件。如果未要求任何输入文件,请使用-E选项指示空的输入文档。-i如果或--input参数的值为“-”,或者不包括输入选项或输入文件,则使用标准输入。使用标准输入时,按 Ctrl+d 向文件结束发出信号。常规语法为:

以下示例使用空输入文档和输出文件 script1-output.xml 调用脚本的 SLAX 调试器

使用 SLAX 调试器 (sdb)

要查看 SLAX 的帮助消息,请 help 于 (sdb) 提示符发出命令。要显示单个命令的帮助消息,请发出问题 help command,您需要更多信息的 sdb 命令在哪里 command 。例如:

脚本调试过程因脚本而异。下面列出了一个通用的大纲:

  1. 进入调试模式。
  2. 使用 break 命令在脚本中插入断点。

    在执行期间,暂停暂停在定义的断点。

    断点位置可以是模板的名称或当前脚本中的行号,也可以是文件名和用冒号隔开的行号。如果未包含参数,则当前执行行会创建一个断点。断点在创建时按顺序编号。要查看断点列表,请发出 info breakpoints 命令。要删除断点,请发出 delete num 命令并指定断点编号。要删除所有断点,请发出 delete 不带参数的命令。

    以下示例创建三个断点,第一个在第 7 行,第二行在第 25 行,第三个在名为“三”的模板上:

  3. 通过在分断器提示符continue发出 、 nextfinishover、 、 、 和step命令来递增脚本执行,例如:
  4. 在程序执行时查看变量的值,以确保它们具有预期值。
  5. 要随时重新加载脚本内容并从头开始重新启动脚本执行,请发出 reload 命令。

使用 SLAX 分析器

SLAX 包含一个分析器,可以报告有关脚本的活动和性能信息。分析器在启动调试器时会自动启用,可跟踪脚本执行,直至脚本终止。随时都可以显示或清除分析信息,并暂时禁用或启用分析器。

要访问分析器,请 profile 通过 SLAX 进一个提示符 (sdb) 发出命令,并包括所有选项。配置文件命令语法为:

表 2 列出了配置文件命令选项。 profile 无需附加选项发出命令即可打开和关闭分析器。

您可以通过在 (sdb) 提示符发出 help profile 命令来访问探查器帮助。

表 2:配置文件命令选项

选项

描述

清楚

清除分析信息

关闭

禁用分析

启用分析

报告 [简要]

报告分析信息

要启用分析器并打印报告:

  1. 进入调试模式。默认情况下,分析器处于启用状态。
  2. 逐步执行脚本,或完整执行脚本。
  3. 在执行脚本期间的任意时间点,显示分析信息。

    brief 选项指示 sdb 避免显示未命中的行,因为没有有效信息。如果省略选项 brief ,将显示破折号。

    以下示例输出显示带有和不带选项的 brief 配置文件报告。为了显示,将示例中的源代码数据截短。

个人资料报告包括以下信息:

  • Line- 源代码中的行号。

  • Hits-此行的执行次数。

  • User-处理此线路所花费的“用户”时间微秒数。

  • U/Hit-每次点击的平均“用户”时间微秒数。

  • System-处理此线路所花费的“系统”时间微秒数。

  • S/Hit-每次命中“系统”时间的平均微秒数。

  • Source- 源代码行。

此信息不仅显示代码执行期间花费的时间,还可以显示正在执行哪些行,这可以帮助调试执行不符预期的脚本。

使用调用流

当您进入或退出脚本级别时,SLAX 调试 callflow 命令支持打印信息数据。

要为脚本启用调用流并查看调用流数据,

  1. 进入调试模式。
  2. callflow SLAX 提示符 (sdb) 下发出命令。
  3. 逐步执行脚本,或完整执行脚本。

    调用流在进入和退出不同级别的脚本时打印信息。每个输出行均引用帧的指令、文件名和行号。