Bonjour les amis,,
pouvez vous me dire c'est quoi la trace d'un programme, je l'ai trouvé dans un exercice et je n'arrive pas a la saisir,
merci pour votre aide,, et si possible pouvez vous me donner des exemples,,,
Bonjour les amis,,
pouvez vous me dire c'est quoi la trace d'un programme, je l'ai trouvé dans un exercice et je n'arrive pas a la saisir,
merci pour votre aide,, et si possible pouvez vous me donner des exemples,,,
Je crois qu'il va falloir un peu plus de contexte, car le sens du mot trace est assez vague.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Salut,
En lisant ça, moi, j'ai tout de suite pensé à la "SIGNATURE" d'une fonction...
Après peut-être cela n'a rien a voir xD
Bonne chance !
Je pense que c'est l'exécution manuelle des instructions en gros papier/crayontout en gardant une trace des valeurs prises par les variables du programme.
Un exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 #include <stdio.h> #include <stdlib.h> int main( void ) { int tab[] = {1, 32, 12, 2009, 90, 2, 124}; int max = tab[0]; unsigned i; for( i=1 ; i<sizeof tab/sizeof *tab ; i++ ) { if( tab[i]>max ) { max = tab[i]; } } printf("max : %d", max); return 0; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 +---+--------+------+ | i | tab[i] | max | +---+--------+------+ | ? | ?? | 1 | | 1 | 32 | 1 | | 2 | 12 | 32 | | 3 | 2009 | 32 | | 4 | 90 | 2009 | | 5 | 2 | 2009 | | 6 | 124 | 2009 | +---+--------+------+
je crois comme vous disiez c'est l'execution manuelle du programme, parceque ce truc de la trace d'un programme je l'ai trouvé dans un exercice dont ils m'ont demandé d'etablir la trace d'un programme deja donné en C.
Merci a Vous
Il n'y a pas de réponse précisément définie à ma connaissance. Toutefois, le mot « trace » se restreint généralement à un des cas suivants :
- Le suivi des appels aux primitives du système. C'est le cas de strace chez GNU ou truss sous Solaris, qui fait une radiographie du programme en exécution et enregistre en temps réel les appels externes, avec les paramètres et éventuellement l'état du programme (c'est-à-dire la valeur à un moment t de tous ses registres) ;
- Le débogage pas-à-pas. Par abus de langage, à mon avis, « tracer » un programme correspond généralement à l'exécuter pas-à-pas si possible avec les registres hardware servant à çà ;
- La pile des appels. La commande backtrace (ou bt) sous GDB remonte la pile entière pour savoir quelle fonction a appelé celle qui s'exécute, elle-même appelée par quelle autre, etc. jusqu'au point d'entrée ;
- D'une manière générale, n'importe quel outil qui permet de tenir le log du déroulement d'un programme.
Bonjour,
Merci pour vos reponse, dans le cas si on veux appliquer la 1ere definition de la trace d'un programme, qu'est ce que vous proposez comme trace du programme ci-dessous,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 int main ( int argc , char *argv [ ] ) { int p1 [2] ; pipe ( p1 ) ; if (fork ( )) { const char msg [ ] = Message dans un tube ; write (p1[1] , msg , sizeof (msg)) ; } else { char buf [128] ; read (p1 [0] ,buf , sizeof(buf ) ) ; printf (%s \n, buf ) ; } return 0 ; }
Partager