3
Funcionalidades poco conocidas del "Debugger" Ultima actualización Martes 13 de Noviembre de 2007 15:54 En este artículo, les mostramos algunas funcionalidades del "debugger" interactivo de ILE (STRDBG) que son muy útiles cuando estamos en nuestras faenas de encontrar un error. %SUBSTR Built-In Function Esta función es muy interesante, sobretodo si usted está trabajando con cadenas de caracteres muy largas. - Se puede visualizar un segmento de una cadena como se muestra a continuación (suponiendo que StringFldA = 'abcdefghijklmnopqrstuvwxyz'): Comando : EVAL %SUBSTR(StringFldA 12 5) Resultado: %SUBSTR(StringFldA 12 5) = 'lmnop' - Se puede usar la función %SUBSTR para fijar el valor de una parte específica de una cadena. Para mí, esta es la más útil de estas dos funciones. Comando : EVAL %SUBSTR(StringFldA 12 5) = 'xxxxx' Resultado: %SUBSTR(StringFldA 12 5) = 'xxxxx' Comando : EVAL StringFldA Resultado: StringFldA = 'abcdefghijkxxxxxqrstuvwxyz' - También puede usar %SUBSTR para establecer un punto de parada condicional o una condición de inspección ("watch"). Por ejemplo, el siguiente código detendrá la ejecución sólo cuando las posiciones 12 a 16 de StringFldA sean "xxxxx": 1 / 3

Funcionalidades Poco Conocidas Del Qdebuggerq

Embed Size (px)

DESCRIPTION

Funcionalidades Poco Conocidas Del Qdebuggerq

Citation preview

Page 1: Funcionalidades Poco Conocidas Del Qdebuggerq

Funcionalidades poco conocidas del "Debugger"Ultima actualización Martes 13 de Noviembre de 2007 15:54

En este artículo, les mostramos algunas funcionalidades del "debugger" interactivode ILE (STRDBG) que son muy útiles cuando estamos en nuestras faenas de encontrar unerror.

%SUBSTR Built-In Function

Esta función es muy interesante, sobretodo si usted está trabajando con cadenas de caracteresmuy largas. - Se puede visualizar un segmento de una cadena como se muestra a continuación(suponiendo que StringFldA = 'abcdefghijklmnopqrstuvwxyz'):

Comando : EVAL %SUBSTR(StringFldA 12 5) Resultado: %SUBSTR(StringFldA 12 5) = 'lmnop' - Se puede usar la función %SUBSTR parafijar el valor de una parte específica de una cadena. Para mí, esta es la más útil de estas dosfunciones.

Comando : EVAL %SUBSTR(StringFldA 12 5) = 'xxxxx' Resultado: %SUBSTR(StringFldA 12 5) = 'xxxxx'

Comando : EVAL StringFldA Resultado: StringFldA = 'abcdefghijkxxxxxqrstuvwxyz'

- También puede usar %SUBSTR para establecer un punto de parada condicional o unacondición de inspección ("watch"). Por ejemplo, el siguiente código detendrá laejecución sólo cuando las posiciones 12 a 16 de StringFldA sean "xxxxx":

1 / 3

Page 2: Funcionalidades Poco Conocidas Del Qdebuggerq

Funcionalidades poco conocidas del "Debugger"Ultima actualización Martes 13 de Noviembre de 2007 15:54

Comando: BREAK 100 when %SUBSTR(StringFldA 12 5) = 'xxxxx'

- O usted puede buscar por cambio en las mismas posiciones mediante el uso de esta condición de inspección:

Comando: WATCH %SUBSTR(StringFldA 12 5)

De este modo, en cualquier momento que el contenido de las posiciones 12 a 16 cambie, laejecución del programa se detiene y se le informa.

%INDEX Built-In Function

La función %INDEX es muy práctica cuando se está utilizando estructuras de datos demúltiples ocurrencias.

2 / 3

Page 3: Funcionalidades Poco Conocidas Del Qdebuggerq

Funcionalidades poco conocidas del "Debugger"Ultima actualización Martes 13 de Noviembre de 2007 15:54

También es útil en combinación con _QRNU_DSI_xxxx (donde xxxx = el nombre de unaestructura de datos de múltiples ocurrencias).

- El comando EVAL _QRNU_DSI_xxxx devuelve el número de la actual ocurrencia de estructura de datos de múltiples ocurrencias.

- El uso de la función %INDEX cambiará la ocurrencia actual.

Tomemos el siguiente ejemplo:

d WorkDS1         ds                  occurs(3)    d  StringA                      10a                d  StringB                      25a                

Comando: EVAL _QRNU_DSI_WorkDS1 Resultado: 1 (o cual sea la actual ocurrencia de WorkDS1)

Comando : WorkDS1 = %INDEX(3) Resultado: WorkDS1 = %INDEX(3) = 3 (Los subcampos de WorkDS1 visualizados serán los de la tercera ocurrencia.)

3 / 3