La mise au point

Ce programme présente l'usage de la mise au point pour obtenir la trace d'exécution.

Le fichier source est ${UPS_HOME}/upssdk/demo/${UPS_LANGUAGE}/map.upl.

Mode compilé

Commande de compilation

upscmp Source=map.upl MiseAuPoint=Oui

Commande d'exécution

map MiseAuPoint=TraceApplication

Mode interprété

upssng Source=map.upl MiseAuPoint=TraceApplication

Fichier source

Source Composant "Exemple de trace avec l'option map" Version 4.0.0;

Enumere
/*****/
Procedure P1(A : Entier, B : Entier Entree Sortie, C : Entier Sortie)
/*******************************************************************/
Debut
Ecran.Ecrire("A="+Caractere(A));
Ecran.Ecrire("B="+Caractere(B));
B=-1;
C=-2;
Fin Procedure

Procedure P1Nul(A : Nul Ou Entier, B : Nul Ou Entier Entree Sortie, C : Nul Ou Entier Sortie)
/*******************************************************************************************/
Debut
Ecran.Ecrire("A="+Caractere(A));
Ecran.Ecrire("B="+Caractere(B));
B=-1;
C=-2;
Fin Procedure

Fonction F1() Retourner Entier
/****************************/
Debut
Retourner 1;
Fin Fonction

Procedure P2(A : Reel, B : Reel Entree Sortie, C : Reel Sortie)
/*************************************************************/
Debut
Ecran.Ecrire("A="+Caractere(A));
Ecran.Ecrire("B="+Caractere(B));
B=-1.1;
C=-2.2;
Fin Procedure

Procedure P2Nul(A : Nul Ou Reel, B : Nul Ou Reel Entree Sortie, C : Nul Ou Reel Sortie)
/*************************************************************************************/
Debut
Ecran.Ecrire("A="+Caractere(A));
Ecran.Ecrire("B="+Caractere(B));
B=-1.1;
C=-2.2;
Fin Procedure

Fonction F2() Retourner Reel
/**************************/
Debut
Retourner 1.1;
Fin Fonction

Procedure P3(A : Booleen, B : Booleen Entree Sortie, C : Booleen Sortie)
/**********************************************************************/
Debut
Ecran.Ecrire("A="+Caractere(A));
Ecran.Ecrire("B="+Caractere(B));
B=Vrai;
C=Vrai;
Fin Procedure

Procedure P3Nul(A : Nul Ou Booleen, B : Nul Ou Booleen Entree Sortie, C : Nul Ou Booleen Sortie)
/**********************************************************************************************/
Debut
Ecran.Ecrire("A="+Caractere(A));
Ecran.Ecrire("B="+Caractere(B));
B=Vrai;
C=Vrai;
Fin Procedure

Fonction F3() Retourner Booleen
/*****************************/
Debut
Retourner Vrai;
Fin Fonction

Procedure P4(A : Couleur, B : Couleur Entree Sortie, C : Couleur Sortie)
/**********************************************************************/
Debut
Si A==Blanc Alors Sinon Fin Si
Si B==Blanc Alors Sinon Fin Si
B=Rouge;
C=Bleu;
Fin Procedure

Procedure P4Nul(A : Nul Ou Couleur, B : Nul Ou Couleur Entree Sortie, C : Nul Ou Couleur Sortie)
/**********************************************************************************************/
Debut
Si A==Blanc Alors Sinon Fin Si
Si B==Blanc Alors Sinon Fin Si
B=Rouge;
C=Bleu;
Fin Procedure

Fonction F4() Retourner Couleur
/*****************************/
Debut
Retourner Rouge;
Fin Fonction

Fonction F5() Retourner Caractere
/*******************************/
Debut
Retourner "coucou";
Fin Fonction

Principal
Variable
/******/
Debut
A1=2;
A2=3;
P1(1, A1, A2);
Ecran.Ecrire("A1="+Caractere(A1));
Ecran.Ecrire("A2="+Caractere(A2));
A1Nul=2;
A2Nul=3;
P1Nul(Nul, A1Nul, A2Nul);
Ecran.Ecrire("A1Nul="+Caractere(A1Nul));
Ecran.Ecrire("A2Nul="+Caractere(A2Nul));
Ecran.Ecrire("F1="+Caractere(F1()));

B1=2;
B2=3;
P2(1.0, B1, B2);
Ecran.Ecrire("B1="+Caractere(B1));
Ecran.Ecrire("B2="+Caractere(B2));
B1Nul=2.0;
B2Nul=3.0;
P2Nul(Nul, B1Nul, B2Nul);
Ecran.Ecrire("B1Nul="+Caractere(B1Nul));
Ecran.Ecrire("B2Nul="+Caractere(B2Nul));
Ecran.Ecrire("F2="+Caractere(F2()));

P3(Vrai, C1, C2);
Ecran.Ecrire("C1="+Caractere(C1));
Ecran.Ecrire("C2="+Caractere(C2));
C2Nul=Faux;
P3Nul(Nul, C1Nul, C2Nul);
Ecran.Ecrire("C1Nul="+Caractere(C1Nul));
Ecran.Ecrire("C2Nul="+Caractere(C2Nul));
Ecran.Ecrire("F3="+Caractere(F3()));

D1=Blanc;
D2=Rouge;
P4(Rouge, D1, D2);
Si D1==Blanc Alors Sinon Fin Si
Si D2==Blanc Alors Sinon Fin Si
D1Nul=Blanc;
D2Nul=Rouge;
P4Nul(Nul, D1Nul, D2Nul);
Si D1Nul==Blanc Alors Sinon Fin Si
Si D2Nul==Blanc Alors Sinon Fin Si
D2=F4();
Si D2==Blanc Alors Sinon Fin Si
Ecran.Ecrire("F5="+F5());
Fin Principal

Résultat de l'exécution

Sortie écran

Information UpsDbg-105 : la tâche 'Principal' est attachée à Up ! Virtual Technical Machine. A=1 B=2 A1=-1 A2=-2 B=2 A1Nul=-1 A2Nul=-2 F1=1 A=1.0000 B=2.0000 B1=-1.1000 B2=-2.2000 B=2.0000 B1Nul=-1.1000 B2Nul=-2.2000 F2=1.1000 A=Vrai B=Faux C1=Vrai C2=Vrai A=Faux B=Faux C1Nul=Vrai C2Nul=Vrai F3=Vrai A!=Blanc B==Blanc D1!=Blanc D2!=Blanc A!=Blanc B==Blanc D1Nul!=Blanc D2Nul!=Blanc F4()!=Blanc F5=coucou Information UpsDbg-106 : la tâche 'Principal' est détachée d'Up ! Virtual Technical Machine.

Fichier de trace

-->map.upl:Principal:?(); -->map.upl:157:P1(A=1, B=2, C=0); <--map.upl:23:P1(A=1, B=-1, C=-2); -->map.upl:162:P1Nul(A=Nul, B=Entier(2), C=Nul); <--map.upl:32:P1Nul(A=Nul, B=Entier(-1), C=Entier(-2)); -->map.upl:165:F1(); <--map.upl:38:F1() Retourner 1; -->map.upl:169:P2(A=1.0, B=2.0, C=0.0); <--map.upl:47:P2(A=1.0, B=-1.1, C=-2.2); -->map.upl:174:P2Nul(A=Nul, B=Reel(2.0), C=Nul); <--map.upl:56:P2Nul(A=Nul, B=Reel(-1.1), C=Reel(-2.2)); -->map.upl:177:F2(); <--map.upl:62:F2() Retourner 1.1; -->map.upl:179:P3(A=Vrai, B=Faux, C=Faux); <--map.upl:71:P3(A=Vrai, B=Vrai, C=Vrai); -->map.upl:183:P3Nul(A=Nul, B=Nul, C=Nul); <--map.upl:80:P3Nul(A=Nul, B=Enumere(1), C=Enumere(1)); -->map.upl:186:F3(); <--map.upl:86:F3() Retourner Vrai; -->map.upl:190:P4(A=3, B=2, C=0); <--map.upl:103:P4(A=3, B=3, C=1); -->map.upl:203:P4Nul(A=Nul, B=Enumere(2), C=Nul); <--map.upl:120:P4Nul(A=Nul, B=Enumere(3), C=Enumere(1)); -->map.upl:214:F4(); <--map.upl:126:F4() Retourner 3; -->map.upl:221:F5(); <--map.upl:132:F5() Retourner "coucou"; <--map.upl:221:Principal() Retourner 0;