SLAX 调试器、分析器和调用流
SLAX 调试器、分析器和调用流概述
Junos OS 命令行界面 (CLI) 和 libslax 分布包括 SLAX 分断器 (sdb),用于跟踪 SLAX 脚本的执行情况。SLAX 支持您逐步查看脚本执行,在定义的断点暂停脚本执行,以及随时查看脚本变量的值。
SLAX 调试操作和命令语法类似于 SLAX 项目调试器 (GDB)。许多 sdb 命令尽可能跟随其 GDB 命令。 表 1 列出了 SLAX 的一些命令,并简要介绍了每个命令。
SLAX 包含一个分析器,可以报告有关脚本的活动和性能信息。分析器在启动调试器时会自动启用,可跟踪脚本执行,直至脚本终止。随时都可以显示或清除分析信息,并暂时禁用或启用分析器。当您进入或退出脚本级别时,SLAX 调试 callflow
命令支持打印信息数据。
命令 |
描述 |
---|---|
中断 [loc] |
在当前的执行行向脚本添加一个断点。或者指定 [file:]line 或模板名称,以创建该位置的断点。 |
调用流 [开 | 关] |
启用或禁用呼叫流跟踪。您可以显式指定 |
继续 [loc] |
继续运行脚本,直到到达下一个断点。如果没有定义的断点,则脚本将整体运行。或者,指定 [file:]line 或模板名称。包括可选参数时,脚本执行将继续执行,直到其到达断点或指定的行号或模板名称(以哪个为先)。 |
删除 [num] |
删除一个或所有断点。断点在创建时按顺序编号。省略可选参数以删除所有断点。将断点编号作为参数包括在内,可仅删除指定的断点。使用 |
完成 |
完成执行当前模板。 |
帮助 |
显示帮助消息。 |
信息 [断点 | 个人资料 | 个人资料简介] |
显示有关当前脚本的信息。默认命令会列出脚本中的所有断点。或者,指定 |
列表 [loc] |
列出当前脚本的内容。或者指定 [file:]line 或模板名称,从该位置列出部分脚本内容。输出包括文件名、行号和代码。 |
下 |
执行下一个指令,逐步执行任何功能或模板调用。 |
超过 |
执行下一个指令,逐步执行任何功能、模板调用或指令层次结构。 |
打印<xpath> |
打印 XPath 表达式的值。 |
配置文件 [清除 | on | off | 报告 | 报告简报] |
启用或禁用分析器。默认情况下,分析器处于启用状态。 包括清除 |
退出 |
退出调试模式。 |
重新 加载 |
重新加载脚本。 |
运行 |
从脚本开头重新启动脚本执行。 |
步 |
执行下一个指令,深入了解任何功能、模板调用或指令层次结构。 |
其中 |
显示模板调用的回溯。 |
如何使用 SLAX 分图器、分析器和调用流
调用 SLAX 调试器
Junos OS CLI 和 libslax 分布中的 SLAX 处理器都包括 SLAX 调试器 (sdb),用于跟踪 SLAX 脚本的执行情况。
调用 SLAX 调试器时,命令行提示符将变为 (sdb),以表示您处于调试模式。例如:
sdb: The SLAX Debugger (version ) Type 'help' for help (sdb)
使用 Junos OS CLI 中的 SLAX 功能时,只能对配置中启用的操作脚本使用调试器。要在运行 Junos OS 的设备上的 CLI 中调用 SLAX 调试器,请 op invoke-debugger cli
发出操作模式命令,包括操作脚本名称,并根据需要包括任何必要的脚本参数。
user@host> op invoke-debugger cli script <argument-name argument-value>
以下示例为 op 脚本 ge-interfaces 调用 SLAX 调试器 。slax,它具有两个参数 interface
和 protocol
。为这两个参数提供值。
user@host> op invoke-debugger cli ge-interfaces interface ge-0/2/0.0 protocol inet sdb: The SLAX Debugger (version ) Type 'help' for help (sdb)
要使用 SLAX 处理器时调用 SLAX 调试器,请使用slaxproc
或 -d
选项发出命令--debug
。指定脚本文件以及所有输入或输出文件。如果未要求任何输入文件,请使用-E
选项指示空的输入文档。-i
如果或--input
参数的值为“-”,或者不包括输入选项或输入文件,则使用标准输入。使用标准输入时,按 Ctrl+d 向文件结束发出信号。常规语法为:
$ slaxproc --debug [options] [script] [files]
以下示例使用空输入文档和输出文件 script1-output.xml 调用脚本的 SLAX 调试器
$ slaxproc --debug -n script1.slax -o script1-output.xml -E sdb: The SLAX Debugger (version ) Type 'help' for help (sdb)
使用 SLAX 调试器 (sdb)
要查看 SLAX 的帮助消息,请 help
于 (sdb) 提示符发出命令。要显示单个命令的帮助消息,请发出问题 help command
,您需要更多信息的 sdb 命令在哪里 command 。例如:
(sdb) help break break [loc] Add a breakpoint at [file:]line or template
脚本调试过程因脚本而异。下面列出了一个通用的大纲:
使用 SLAX 分析器
SLAX 包含一个分析器,可以报告有关脚本的活动和性能信息。分析器在启动调试器时会自动启用,可跟踪脚本执行,直至脚本终止。随时都可以显示或清除分析信息,并暂时禁用或启用分析器。
要访问分析器,请 profile
通过 SLAX 进一个提示符 (sdb) 发出命令,并包括所有选项。配置文件命令语法为:
(sdb) profile [options]
表 2 列出了配置文件命令选项。 profile
无需附加选项发出命令即可打开和关闭分析器。
(sdb) profile Disabling profiler (sdb)
您可以通过在 (sdb) 提示符发出 help profile
命令来访问探查器帮助。
选项 |
描述 |
---|---|
清楚 |
清除分析信息 |
关闭 |
禁用分析 |
上 |
启用分析 |
报告 [简要] |
报告分析信息 |
要启用分析器并打印报告:
个人资料报告包括以下信息:
Line
- 源代码中的行号。Hits
-此行的执行次数。User
-处理此线路所花费的“用户”时间微秒数。U/Hit
-每次点击的平均“用户”时间微秒数。System
-处理此线路所花费的“系统”时间微秒数。S/Hit
-每次命中“系统”时间的平均微秒数。Source
- 源代码行。
此信息不仅显示代码执行期间花费的时间,还可以显示正在执行哪些行,这可以帮助调试执行不符预期的脚本。
使用调用流
当您进入或退出脚本级别时,SLAX 调试 callflow
命令支持打印信息数据。
要为脚本启用调用流并查看调用流数据,