ZZPRINT, una forma práctica de visualizar código desde la línea de comandos

This is the translation of the original article.

¡Hola a todos!

En ocasiones, mientras depuramos  código COS podemos obtener mensajes de error como: <UNDEFINED>test^routine *test

El error (al que podemos acceder con la variable especial $zerror) nos indica la rutina y la línea que ha fallado.
Para revisar el código desde la línea de comandos, escribimos:

ZLOAD routine 

ZPRINT test

Posiblemente también nos sea útil  echar un vistazo a las líneas que se encuentran antes de la línea donde se produjo el error, ya que estas le proporcionan contexto. Utilizando ZPRINT podemos escribir ZPRINT +1:test pero esto podría mostrarnos cientos de líneas.

A partir de la versión 2013.1 podemos utilizar ZZPRINT:

ZZPRINT "test^routine":10

Este comando mostrará las 10 líneas previas a la línea test^routine.

De esta forma podemos copiar/pegar la línea de referencia directamente en el comando y especificar el número de líneas previas o posteriores utilizando esta sintaxis, donde, ya sea antes o después, pueden estar en blanco:

ZZPRINT "<entry+offset^routine>":<before lines>:<after lines>

Desde la versión 2015.2 también podrá visualizar la línea actual con $zerror, y las diez líneas previas a esta mediante el comando:

ZZPRINT "$zerror":10

Además, si se encuentra en la línea de comandos del depurador, podrá mostrar la ubicación actual del punto de interrupción mediante el comando:

ZZPRINT "*":5:5

Esto mostrará la ubicación actual, 5 líneas previas y 5 líneas posteriores.