Debuguear en Sap 1720120194

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 19

Módulo 8: Debuguear un programa

ÍNDICE

1. DEBUGUEAR UN PROGRAMA.................................................................................... 3
1.1. Activar debug y conceptos básicos ........................................................................ 3
1.2. Visualización de variables y otros datos ................................................................ 8
1.3. Breakpoints y watchpoints .................................................................................. 12
1.4. Breakpoints en mensajes y otras opciones ......................................................... 15

2
Módulo 8: Debuguear un programa

1. DEBUGUEAR UN PROGRAMA

El modo Debug, o Debuguear un programa, se utiliza para depurar errores de un


programa o ver el comportamiento de un programa paso a paso. Permite recorrer las
líneas de programa y visualizar el contenido de las variables para verificar si se comporta
como debe.

1.1. Activar debug y conceptos básicos

Existen varias formas de activar el modo debug.

Formas de activar debug:

 Comando /H en la línea de comandos


 Fijar un breakpoint en un programa
 Ejecutar en modo debug desde el editor

 Comando /H

3
Módulo 8: Debuguear un programa

 Fijar un breakpoint

4
Módulo 8: Debuguear un programa

Ejecutamos el programa, y el debuguer se para en el breakpoint:

Si pulsamos F8 para continuar la ejecución se para en ese breakpoint cada vez que
pase por esa línea de código.

 Modo debug desde el editor

5
Módulo 8: Debuguear un programa

La pantalla de debug:

Una vez estamos en modo debug, la pantalla se divide en diferentes zonas. En la parte
izquierda podemos ver la ventana de código fuente (marcado en rojo). en la parte
superior (en naranja) vemos el programa / include / evento que está en ejecución, y
variables de sistema. Entre ambas podemos seleccionar diferentes pestañas que
muestran varias vistas. Y a la derecha podemos ver una ventana para inspeccionar
variables y la pila de llamadas ABAP y dynpro.

 El icono aparece donde hemos puesto un Breakpoint.

6
Módulo 8: Debuguear un programa

 El icono muestra donde está la próxima línea de código que va a ejecutarse.


 El botón , situado en la zona superior, permite navegar a la línea en ejecución.

Navegación en modo debug:

En la barra de herramientas, y en el menú Debugger tenemos las opciones más


utilizadas. Lo más óptimo es utilizar las teclas de función asociadas (F5 A F8).

F5 - Paso a paso , ejecuta la línea actual de programa, si


la línea es un form o función entrará dentro del código

F6 – Ejecutar , ejecuta la línea actual de programa, si la


línea es un form o función ejecutará todo ese código sin entrar
dentro

F7 – Retornar , estando en una subrutina o función


cualquiera, ejecuta hasta el final de dicha subrutina y vuelve
al nivel superior. Si fuera el nivel superior del programa terminaría el mismo.

F8 – Continuar , continua la ejecución abandonando el modo debug.

Con cualquiera de las opciones anteriores, si en la parte de código por el que está
pasando hubiera un breakpoint activo, pararía en ese breakpoint.
7
Módulo 8: Debuguear un programa

Shift+F8 – Continuar hasta el cursor, si fijamos una línea de código más delante de
la situación actual, con esta opción ejecutaría todo el código hasta llegar a ese punto.
Con la excepción que si hay un breakpoint intermedio, se pararía en donde esté.

1.2. Visualización de variables y otros datos

Podemos visualizar el contenido de una variable de diferentes formas:

 Pasando el ratón por encima de la variable

 Haciendo doble-click (F2) encima de una variable, automáticamente se escribe


en el marco de inspección de variables para visualizar el valor actual de la
variable
 Escribiendo la variable en el marco de inspección

 Las variables locales solo se visualizan dentro del ámbito de esa variable:

8
Módulo 8: Debuguear un programa

 Existe una forma de saltar partes de código, incluso navegar hacia sentencias
anteriores, aunque no siempre es posible. Esta opción debe utilizarse con
precaución ya que en programas que actualicen datos pueden generar
inconsistencias si nos saltamos una restricción. Se realiza haciendo clic con el
botón derecho a la línea que queremos ir y seleccionando “Goto Statement”
(pasar a instrucción)

Para visualizar campos de una tablas o estructura, escribimos la ESTRUCTURA-


CAMPO, o una entrada de una tabla interna TABLA[N]-CAMPO, mostrará el valor de
ese campo en el registro N.

Para visualizar datos complejos como tablas o estructura, una vez hemos puesto el
nombre de la tabla, haciendo doble-clic nos muestra el contenido en modo tabla.
También podemos acceder directamente a la carpeta Tablas.

9
Módulo 8: Debuguear un programa

Si la tabla es muy grande, podemos descargar el contenido a un excel para visualizarlo


con detenimiento. Permite descargarlo en varios formatos: XML, TXT, XLS. Incluso,
podemos cargar la tabla desde un fichero externo con “Upload from file”

10
Módulo 8: Debuguear un programa

Podemos modificar el contenido de una variable pulsando el icono “modificar


contenido de campo” , escribiendo el valor deseado y pulsar Enter.

Podemos modificar el contenido de tablas internas:

 Modifcar un campo de una fila, tratandolo como una variable cualquiera

 Modificar, insertar o copiar filas completas


 Borrar filas

11
Módulo 8: Debuguear un programa

1.3. Breakpoints y watchpoints

Los breakpoints se utilizan para detener la ejecución en un punto que deseamos


inspeccionar. Siempre que la ejecución pasa por ese punto se detendrá la ejecución.

 Breakpoint de sesión , fuerza una parada para nuestro propio usuario


 Breakpoint remoto , fuerza una parada para otro usuario. Es útil para
inspeccionar llamadas de interfaces o de otros usuarios. En el menú Utilidades-
> Opciones configuramos el usuario remoto que queremos insapeccionar

 Breakpoint en ejecución , se crea durante el debug haciendo clic en la parte


izquierda de una línea, y solo se mantiene durante el debug actual a menos que
pulsemos el botón de grabar que los graba como breakpoint de sesión. Si
hacemos clic con el botón derecho, sería la opción “Create Debugger Breakpoint”

12
Módulo 8: Debuguear un programa

Los watchpoints se utilizan para hacer paradas condicionales, no se define el punto de


parada sino las condiciones que queremos que se cumpla. Ejemplos de uso:

 Queremos saber dónde se actualiza un campo determinado y no sabemos dónde


es
 Queremos que se pare en cierto punto del programa pero sólo cuando se
alcancen unos determinados valores

Por ejemplo, en el siguiente programa queremos debuguear el loop para la sociedad


‘1975’ (sin haber filtrado la sociedad en la pantalla de selección). Si establecemos un
breakpoint debemos avanzar poco a poco hasta llegar a ese punto:

Mediante un watchpoint podemos establecer una parada condicional, el watchpoint no


está ligado a una línea de código:

En variable definimos la variable que queremos inspeccionar. Si no establecemos una


condición (en la zona inferior de la ventana), se parará en el watchpoint cada vez que
esa variable cambie de valor. Es útil si queremos averiguar dónde cambia una
variable de valor, pero si la variable cambia en muchos puntos puede no resultarlo.

13
Módulo 8: Debuguear un programa

La forma más interesante es añadir una condición al watchpoint, por ejemplo:

Los watchpoint no aparecen marcados en el listado como los breakpoints, podemos


verlos en la pestaña Break./Watchpoints:

Si ahora pulsamos F8, se parará en el watchpoint si alcanza esa condición, y en la


pestaña de watchpoints podemos ver el valor actual y el anterior:

14
Módulo 8: Debuguear un programa

1.4. Breakpoints en mensajes y otras opciones

Existen otras opciones más avanzadas para debugar código.

 Breakpoint en… permite establecer breakpoints en diferentes partes de código


o Mensaje:útil para encontrar donde se produce un error. Podemos poner
en la sentencia MESSAGE que parará en todos los mensajes del
programa, o si conocemos el código de mensaje con la opción en
mensaje y solo para en el que indiquemos

15
Módulo 8: Debuguear un programa

Podemos ver en el área de breakpoints como queda el breakpoint:

De esta forma se para cuando llega al mensaje indicado:

o Sentencia: en cualquier sentencia, además de message, por ejemplo


CALL TRANSACTION, CALL FUNCTION… se parará cuando se alcance
dicha sentencia

o Otros: subrutina o módulo de funciones, estable un breakpoint al entrar


a esa subrutina o módulo de funciones

16
Módulo 8: Debuguear un programa

 Variables locales… pestaña que nos muestra todas las variables locales del
punto que estamos debugando

 Variables globales… pestaña que nos muestra todas las variables globales del
programa que estamos debugando

17
Módulo 8: Debuguear un programa

 Pila de llamadas… en la pestaña estándar podemos ver la pila de llamadas, es


decir, desde qué punto se ha llamado de forma encadenada hasta llegar a la
línea actual. Nos permite navegar al punto de llamada haciendo doble clic. El
botón nos retorna a la línea de código actual

 Borrar/desactivar/activar breakpoins. Una vez encontrado lo que deseamos


podemos continuar el programa sin que para en los breakpoints, para ello
podemos borrarlos (desaparecen) o desactivarlos (quedan en gris ).

 Salir del debug. Las opciones “Restart” o “Exit (Close Application)” permiten
salir del debug sin continuar la ejecución del programa. La opción “Exit
(Application continues running)” sale del debug y el programa continúa
ejecutándose. En este caso si hay un nuevo breakpoint activo entrará de nuevo
en modo debug.

18
Módulo 8: Debuguear un programa

 Configurar vistas del debug. Permite establecer los valores predeterminados.

 Configurar comportamiento del debug. Permite establecer si deseamos


debugar áreas avanzadas como debug del sistema o de actualizaciones.

19
Módulo 8: Debuguear un programa

20

También podría gustarte