Diff for /rpl/src/gestion_pile_systeme.c between versions 1.11 and 1.12

version 1.11, 2010/05/24 10:58:30 version 1.12, 2010/06/24 09:21:43
Line 285  effacement_pile_systeme(struct_processus Line 285  effacement_pile_systeme(struct_processus
     return;      return;
 }  }
   
   
   /*
   ================================================================================
     Procédure d'affichage de la pile système
   ================================================================================
     Entrée :
   --------------------------------------------------------------------------------
     Sortie :
   --------------------------------------------------------------------------------
     Effets de bord : néant
   ================================================================================
   */
   
   void
   trace(struct_processus *s_etat_processus, FILE *flux)
   {
       struct_liste_pile_systeme       *l_element_courant;
   
       integer8                        i;
   
       l_element_courant = (*s_etat_processus).l_base_pile_systeme;
       i = 0;
   
       while(l_element_courant != NULL)
       {
           i++;
           l_element_courant = (*l_element_courant).suivant;
       }
   
       l_element_courant = (*s_etat_processus).l_base_pile_systeme;
       flockfile(flux);
   
       if ((flux == stderr) || (flux == stdout))
       {
           fprintf(flux, "+++Backtrace\n");
       }
   
       while(l_element_courant != NULL)
       {
           fprintf(flux, "%d : D=", i--);
   
           fprintf(flux, ((*l_element_courant).creation_variables_statiques
                   == d_vrai) ? "1" : "0");
           fprintf(flux, ((*l_element_courant).creation_variables_partagees
                   == d_vrai) ? "1" : "0");
           fprintf(flux, ((*l_element_courant).arret_si_exception == d_vrai)
                   ? "1" : "0");
           fprintf(flux, ((*l_element_courant).evaluation_expression == d_vrai)
                   ? "1" : "0");
   
           fprintf(flux, " F=%c%c L=%lu ",
                   ((*l_element_courant).clause == ' ') ? '-' :
                   (*l_element_courant).clause,
                   ((*l_element_courant).type_cloture == ' ') ? '-' :
                   (*l_element_courant).type_cloture,
                   (*l_element_courant).niveau_courant);
   
           if ((*l_element_courant).retour_definition == 'Y')
           {
               fprintf(flux, "RTRN ");
   
               if ((*l_element_courant).origine_routine_evaluation == 'Y')
               {
                   fprintf(flux, "EVL ");
   
                   if ((*l_element_courant).adresse_retour != 0)
                   {
                       fprintf(flux, "P=%lu", (*l_element_courant)
                               .adresse_retour);
                   }
               }
               else
               {
                   fprintf(flux, "SEQ ");
   
                   if ((*l_element_courant).pointeur_objet_retour != NULL)
                   {
                       fprintf(flux, "A=%X", (*l_element_courant)
                               .pointeur_objet_retour);
                   }
               }
           }
           else
           {
               fprintf(flux, "NONE ");
   
               if ((*l_element_courant).origine_routine_evaluation == 'Y')
               {
                   fprintf(flux, "EVL ");
   
                   if ((*l_element_courant).adresse_retour != 0)
                   {
                       fprintf(flux, "P=%lu", (*l_element_courant)
                               .adresse_retour);
                   }
               }
               else
               {
                   fprintf(flux, "SEQ ");
   
                   if ((*l_element_courant).pointeur_objet_retour != NULL)
                   {
                       fprintf(flux, "A=%X", (*l_element_courant)
                               .pointeur_objet_retour);
                   }
               }
           }
   
           fprintf(flux, "\n");
   
           l_element_courant = (*l_element_courant).suivant;
       }
   
       fprintf(flux, "\n");
       funlockfile(flux);
   
       return;
   }
   
 // vim: ts=4  // vim: ts=4

Removed from v.1.11  
changed lines
  Added in v.1.12


CVSweb interface <joel.bertrand@systella.fr>