Depurador, generador de perfiles y flujo de llamadas SLAX
Descripción general del depurador, generador de perfiles y flujo de llamadas de SLAX
La interfaz de línea de comandos (CLI) de Junos OS y la distribución libslax incluyen el depurador SLAX (sdb), que se utiliza para realizar un seguimiento de la ejecución de scripts SLAX. El depurador SLAX permite recorrer paso a paso la ejecución de scripts, pausar la ejecución de scripts en puntos de interrupción definidos y revisar el valor de las variables de script en cualquier punto.
La operación del depurador SLAX y la sintaxis de comandos son similares a las del GNU Project Debugger (GDB). Muchos de los comandos sdb siguen a sus homólogos GDB, en la medida de lo posible. En la tabla 1 se enumeran los comandos del depurador SLAX y una breve descripción de cada comando.
El depurador SLAX incluye un generador de perfiles que puede proporcionar información sobre la actividad y el rendimiento de un script. El generador de perfiles, que se habilita automáticamente al iniciar el depurador, realiza un seguimiento de la ejecución del script hasta que finaliza el script. En cualquier momento, la información de generación de perfiles se puede mostrar o borrar, y el generador de perfiles se puede deshabilitar o habilitar temporalmente. El comando del depurador callflow
SLAX permite imprimir datos informativos al entrar o salir de los niveles del script.
Comando |
Descripción |
---|---|
descanso [loc] |
Agregue un punto de interrupción al script en la línea de ejecución actual. Opcionalmente, especifique [file:]line o un nombre de plantilla para crear un punto de interrupción en esa posición. |
callflow [activado | desactivado] |
Habilite o deshabilite el seguimiento del flujo de llamadas. Puede especificar explícitamente el |
continuar [loc] |
Continúe ejecutando el script hasta que llegue al siguiente punto de interrupción. Si no hay puntos de interrupción definidos, el script se ejecuta en su totalidad. Opcionalmente, especifique [file:]line o un nombre de plantilla. Cuando se incluye el argumento opcional, la ejecución del script continúa hasta que alcanza un punto de interrupción o el número de línea o nombre de plantilla especificados, lo que ocurra primero. |
eliminar [num] |
Elimine uno o todos los puntos de interrupción. Los puntos de interrupción se numeran secuencialmente a medida que se crean. Omita el argumento opcional para eliminar todos los puntos de interrupción. Incluya el número de punto de interrupción como argumento para eliminar solo el punto de interrupción especificado. Ver los puntos de interrupción actualmente activos con el |
Terminar |
Termine de ejecutar la plantilla actual. |
Ayuda |
Mostrar el mensaje de ayuda. |
info [puntos de interrupción | perfil | resumen de perfil] |
Mostrar información sobre el script actual. El comando predeterminado enumera todos los puntos de interrupción del script. Opcionalmente, especifique los argumentos o |
lista [loc] |
Enumere el contenido del script actual. Opcionalmente, especifique [file:]line o un nombre de plantilla desde cuyo punto el depurador muestra el contenido parcial del script. El resultado incluye el nombre de archivo, el número de línea y el código. |
próximo |
Ejecute la siguiente instrucción, pasando por encima de cualquier función o llamada de plantilla. |
Sobre |
Ejecute la siguiente instrucción, pasando por encima de cualquier función o plantilla llamada o jerarquía de instrucciones. |
Imprimir <xpath> |
Imprima el valor de la expresión XPath. |
Perfil [Borrar | Activado | Desactivado | Informe | Informe breve] |
Habilite o deshabilite el generador de perfiles. El generador de perfiles está habilitado de forma predeterminada. Incluya la opción de borrar la |
Dejar |
Salga del modo de depuración. |
Recargar |
Vuelva a cargar el script. |
Ejecutar |
Reinicie la ejecución del script desde el principio del script. |
Paso |
Ejecute la siguiente instrucción, entrando en cualquier función o plantilla llamada o jerarquía de instrucciones. |
Dónde |
Muestra el retroceso de las llamadas de plantilla. |
Cómo usar el depurador, el generador de perfiles y el flujo de llamadas de SLAX
- Invocación del depurador SLAX
- Uso del depurador SLAX (sdb)
- Uso del generador de perfiles SLAX
- Uso de callflow
Invocación del depurador SLAX
Tanto la CLI de Junos OS como el procesador SLAX en la distribución libslax incluyen el depurador SLAX (sdb), que se utiliza para rastrear la ejecución de scripts SLAX.
Cuando invoca el depurador SLAX, el símbolo del sistema cambia a (sdb) para indicar que está en modo de depuración. Por ejemplo:
sdb: The SLAX Debugger (version ) Type 'help' for help (sdb)
Cuando se utiliza el depurador SLAX desde la CLI de Junos OS, solo puede utilizar el depurador con scripts op habilitados en la configuración. Para invocar el depurador SLAX desde la CLI en un dispositivo que ejecute Junos OS, ejecute el comando de modo operativo, incluya el nombre del script op y, opcionalmente, incluya los argumentos de op invoke-debugger cli
script necesarios.
user@host> op invoke-debugger cli script <argument-name argument-value>
En el ejemplo siguiente se invoca el depurador SLAX para el script op ge-interfaces.slax, que tiene dos parámetros, interface
y protocol
. Se proporcionan valores para ambos argumentos.
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)
Para invocar el depurador SLAX cuando se utiliza el procesador SLAX, ejecute el slaxproc
comando con la --debug
opción o -d
. Especifique el archivo de script y los archivos de entrada o salida. Si no se requiere ningún archivo de entrada, utilice la -E
opción para indicar un documento de entrada vacío. Si el argumento o tiene el -i
valor "-", o si no incluye la opción de entrada o --input
un archivo de entrada, se utiliza la entrada estándar. Cuando utilice una entrada estándar, presione Ctrl + d para indicar el final del archivo. La sintaxis general es:
$ slaxproc --debug [options] [script] [files]
En el ejemplo siguiente se invoca el depurador SLAX para el script script1.slax con un documento de entrada vacío y un archivo de salida script1-output.xml
$ slaxproc --debug -n script1.slax -o script1-output.xml -E sdb: The SLAX Debugger (version ) Type 'help' for help (sdb)
Uso del depurador SLAX (sdb)
Para ver el mensaje de ayuda del depurador SLAX, emita el comando en el help
símbolo del sistema (sdb). Para mostrar el mensaje de ayuda de un solo comando, emita help command
, donde command es el comando sdb para el que desea obtener más información. Por ejemplo:
(sdb) help break break [loc] Add a breakpoint at [file:]line or template
El proceso para depurar un script varía según el script. Aquí se presenta un esquema genérico:
Uso del generador de perfiles SLAX
El depurador SLAX incluye un generador de perfiles que puede proporcionar información sobre la actividad y el rendimiento de un script. El generador de perfiles, que se habilita automáticamente al iniciar el depurador, realiza un seguimiento de la ejecución del script hasta que finaliza el script. En cualquier momento, la información de generación de perfiles se puede mostrar o borrar, y el generador de perfiles se puede deshabilitar o habilitar temporalmente.
Para acceder al generador de perfiles, ejecute el comando en el profile
símbolo del depurador de SLAX (sdb) e incluya las opciones que desee. La sintaxis del comando de perfil es:
(sdb) profile [options]
En la tabla 2 se enumeran las opciones de comando de perfil. Al emitir el comando sin opciones adicionales, se activa y desactiva el profile
generador de perfiles.
(sdb) profile Disabling profiler (sdb)
Para acceder a la ayuda del generador de perfiles, ejecute el comando en el help profile
símbolo del sistema (sdb).
Opción |
Descripción |
---|---|
Claro |
Información clara sobre la elaboración de perfiles |
apagado |
Desactivar la generación de perfiles |
En |
Habilitar generación de perfiles |
Informe [Breve] |
Información de generación de perfiles de informes |
Para habilitar el generador de perfiles e imprimir un informe:
El informe de perfil incluye la siguiente información:
Line
: número de línea en el archivo de origen.Hits
: número de veces que se ejecutó esta línea.User
: número de microsegundos de tiempo de "usuario" dedicado a procesar esta línea.U/Hit
: número promedio de microsegundos de tiempo de "usuario" por visita.System
—Número de microsegundos de tiempo de "sistema" dedicado a procesar esta línea.S/Hit
—Número promedio de microsegundos de tiempo del "sistema" por visita.Source
—Línea de código fuente.
Esta información no solo muestra cuánto tiempo se pasa durante la ejecución del código, sino que también puede mostrar qué líneas se están ejecutando, lo que puede ayudar a depurar scripts donde la ejecución no coincide con las expectativas.
Uso de callflow
El comando del depurador callflow
SLAX permite imprimir datos informativos al entrar o salir de los niveles del script.
Para habilitar el flujo de llamadas y ver los datos del flujo de llamadas para un script: