Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

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.

Tabla 1: Comandos del depurador SLAX

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 on valor o off . Al omitir el valor, se activa y desactiva el flujo de llamadas.

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 info comando.

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 profile brief para mostrar la información de profile generación de perfiles.

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 clear información de generación de perfiles. Incluya la report opción o report brief para mostrar información de generación de perfiles para el script actual.

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

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:

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.

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.

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:

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

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:

El proceso para depurar un script varía según el script. Aquí se presenta un esquema genérico:

  1. Ingrese al modo de depuración.
  2. Inserte puntos de interrupción en el script mediante el break comando.

    Durante la ejecución, el depurador se detiene en puntos de interrupción definidos.

    La ubicación del punto de interrupción puede ser el nombre de una plantilla o un número de línea en el script actual, o el nombre de archivo y un número de línea separados por dos puntos. Si no incluye un argumento, se crea un punto de interrupción en la línea de ejecución actual. Los puntos de interrupción se numeran secuencialmente a medida que se crean. Para ver una lista de puntos de interrupción, ejecute el info breakpoints comando. Para eliminar un punto de interrupción, emita el comando y especifique el delete num número de punto de interrupción. Para eliminar todos los puntos de interrupción, emita el delete comando sin argumentos.

    En el ejemplo siguiente se crean tres puntos de interrupción, el primero en la línea 7, el segundo en la línea 25 y el tercero en la plantilla denominada "three":

  3. Incremente la ejecución del script emitiendo los comandos , , , y en el símbolo del continuedepurador, overfinishnextstep por ejemplo:
  4. Revise el valor de las variables a medida que se ejecuta el programa para asegurarse de que tienen el valor esperado.
  5. Para volver a cargar el contenido del script en cualquier momento y reiniciar la ejecución del script desde el principio, ejecute el reload comando.

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:

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.

Para acceder a la ayuda del generador de perfiles, ejecute el comando en el help profile símbolo del sistema (sdb).

Tabla 2: Opciones de comando de perfil

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:

  1. Ingrese al modo de depuración. El generador de perfiles está habilitado de forma predeterminada.
  2. Paso a paso a través de la ejecución del script, o ejecute un script en su totalidad.
  3. En cualquier momento de la ejecución del script, muestre la información de generación de perfiles.

    La brief opción indica a sdb que evite mostrar líneas que no fueron alcanzadas, ya que no hay información válida. Si omite la brief opción, se muestran guiones.

    La siguiente salida de ejemplo muestra un informe de perfil con y sin la brief opción. Los datos del código fuente del ejemplo se truncan con fines de visualización.

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:

  1. Ingrese al modo de depuración.
  2. Ejecute el comando en el callflow símbolo del depurador de SLAX (sdb).
  3. Paso a paso a través de la ejecución del script, o ejecute un script en su totalidad.

    Callflow imprime información a medida que entra y sale de diferentes niveles del script. Cada línea de salida hace referencia a la instrucción, el nombre de archivo y el número de línea de la trama.