
La barre d’outils du débogueur se compose des fonctions représentées sur la Figure 2.2 :

Figure 2.2 : Barre d’outils
En détail, voici les fonctionnalités de cette barre d’outils avec les raccourcis clavier associés.

2.1.1/ Etape individuelle F5
Cette fonction permet d’avancer ligne par ligne dans le programme. Prenons l’exemple du programme ci-dessous pour comprendre ce que fait cette fonctionnalité.
1 START-OF-SELECTION. 2 3 IF p_werks IS NOT INITIAL. 4 5 PERFORM get_data. 6 7 IF NOT gt_data[] IS INITIAL. 8 9 LOOP AT gt_data ASSIGNING . 10 11 CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' 12 EXPORTING 13 input = -matnr 14 IMPORTING 15 output = -matnr. 16 17 CALL SCREEN 100. 18 19 ENDLOOP. 20 ENDIF. 21 ENDIF.
Si un point d’arrêt est défini à la ligne 3, en cliquant sur l’icône Étape individuelle ou en utilisant le raccourci clavier F5, le programme avancera à la prochaine ligne de code, soit la ligne 5. En réappuyant sur F5, le programme avancera de nouveau à la ligne suivante. Comme il s’agit de PERFORM
, le programme entrera dans cette routine et il sera ensuite possible de continuer à l’exécuter pas à pas. De même, en arrivant à la ligne 11, le programme entrera dans la fonction où il sera également possible de continuer pas à pas.
2.1.2/ Exécuter F6
Cette fonction est similaire à la fonction précédente, mais elle ne rentrera pas dans le détail d’un appel d’objet tel qu’une routine, une fonction, une classe, etc.
Avec l’exemple précédent et un point d’arrêt à la ligne 3, en cliquant sur l’icône Exécuter ou en passant par le raccourci clavier F6, le programme avancera à la ligne 5.Si l’on appuie de nouveau sur F6, au lieu d’entrer dans la routine, il accédera directement à la ligne 7. De même, une fois à la ligne 11, le programme passera la fonction pour accéder directement à la ligne 17.
2.1.3/ Retour F7
La fonctionnalité Retour ou le raccourci clavier F7 permettent de revenir à l’étape inférieure du programme.
Dans le débogueur, il est possible de voir toutes les étapes par lesquelles le programme est passé.La Figure 2.3 est un exemple d’une pile ABAP (liste de programmes en cours d’exécution – voir section 3.2.2). Le programme se situe à l’étape 9 de la méthode GET_PARAMETERS
de la classe CL_SALV_CSQ_PARAMS_DB
.

Si l’étape 9 ne paraît pas intéressante, et que l’on souhaite poursuivre l’analyse à l’étape 8, la fonction de F7 permet de revenir à l’étape précédente.
Rappelons que le fait de revenir en arrière ne signifie pas que le code de l’étape quittée n’a pas été traité.
2.1.4/Suite F8
La fonctionnalité Suite ou le raccourci clavier F8 permettent de terminer l’exécution du programme et de sortir du débogueur pour arriver au résultat final. Si un point d’arrêt a été placé un peu plus loin dans l’exécution du programme, il s’arrêtera de nouveau au point défini. Cette fonctionnalité permet, dans l’analyse de programmes complexes, de passer de nombreuses étapes très rapidement.
La figure 2.4 représente les différents types d’exécution du débogueur.

2.1.5/Modifier incrément du déboggage Ctrl + Maj + F10
Lorsque le programme contient une condition IF
composée de plusieurs conditions, par défaut le débogueur vérifie si tout le bloc est valide. Avec l’option d’incrément, il est possible de vérifier chaque étape de la condition.
Dans la Figure 2.5, le débogueur vérifie d’abord la première étape ; si elle est validée, il passe à la seconde et ainsi de suite. Il est donc possible de cibler plus facilement le problème lorsqu’une condition est incorrecte.

Figure 2.5 : Exemple du débogueur avec l’option Incrément
2.1.6/Créer un point d’arrêt F9
Un point d’arrêt peut être défini selon plusieurs critères :
Instruction ABAP
Il suffira de définir une syntaxe pour que le programme s’arrête.

Méthode
Il faut définir ici si il s’agit d’une classe SAP (standard ou spécifique) visible via la transaction SE 24, s’il s’agit d’une classe locale, visible uniquement dans le programme en cours d’exécution, ou s’il s’agit d’une classe locale définie dans une autre classe, comme représenté sur la Figure 2.7.

Fonction
Même comportement que les méthodes mais avec des modules de fonction.
Comme indiqué sur la figure 2.8, il est possible d’ajouter une condition au point d’arrêt.
