Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Connaitre l'empilement des fonctions en C

17 réponses
Avatar
ALain Montfranc
Bonsoir

Existe t'il un moyen portable (ou semi portable) de connaitre la pile
des fonctions appelées ou, a défaut, le nom de la fonction en cours ?

(objectif : messages de debug)

Merci

10 réponses

1 2
Avatar
Eric Levenez
Le 2/02/07 20:06, dans , « ALain
Montfranc » a écrit :

Existe t'il un moyen portable (ou semi portable) de connaitre la pile
des fonctions appelées ou, a défaut, le nom de la fonction en cours ?


L'identifier __func__ retourne le nom de la fonction courante.
Et un exemple de la norme :

#include <stdio.h>
void myfunc(void)
{
printf("%sn", __func__);
/*... */
}

--
Éric Lévénez -- <http://www.levenez.com/&gt;
Unix is not only an OS, it's a way of life.

Avatar
ALain Montfranc
Eric Levenez a écrit
Le 2/02/07 20:06, dans , « ALain
Montfranc » a écrit :

Existe t'il un moyen portable (ou semi portable) de connaitre la pile
des fonctions appelées ou, a défaut, le nom de la fonction en cours ?


L'identifier __func__ retourne le nom de la fonction courante.
Et un exemple de la norme :

#include <stdio.h>
void myfunc(void)
{
printf("%sn", __func__);
/*... */
}


Super merci


Avatar
Jean Pierre Daviau
"ALain Montfranc" a écrit dans le message de news:

Eric Levenez a écrit
Le 2/02/07 20:06, dans , «
ALain

Existe t'il un moyen portable (ou semi portable) de connaitre
la pile
des fonctions appelées ou, a défaut, le nom de la fonction en
cours ?


L'identifier __func__ retourne le nom de la fonction courante.
Et un exemple de la norme :

#include <stdio.h> void myfunc(void) { printf("%sn",
__func__);
/*... */ }


Super merci



#include <stdio.h>
#include <assert.h>
Error E2451 cpress.c 65: Undefined symbol '_func_' in function
main



Avatar
Eric Levenez
Le 3/02/07 13:49, dans <MF%wh.83911$, « Jean
Pierre Daviau » a écrit :

Error E2451 cpress.c 65: Undefined symbol '_func_' in function
main


Il y a 2 _ avant et après.

--
Éric Lévénez -- <http://www.levenez.com/&gt;
Unix is not only an OS, it's a way of life.

Avatar
Jean Pierre Daviau
"Eric Levenez" a écrit dans le message de
news: C1EA46BC.9D47B%
Le 3/02/07 13:49, dans
<MF%wh.83911$, « Jean

Error E2451 cpress.c 65: Undefined symbol '_func_' in function
main


Il y a 2 _ avant et après.


Oui, et ¸ca ne fonctione pas.

==
#include <stdio.h>

#include <assert.h>


int main(void){

printf("%sn", __func__);

return 0;
}


Avatar
Pascal Bourguignon
"Jean Pierre Daviau" writes:

"Eric Levenez" a écrit dans le message de
news: C1EA46BC.9D47B%
Le 3/02/07 13:49, dans
<MF%wh.83911$, « Jean

Error E2451 cpress.c 65: Undefined symbol '_func_' in function
main


Il y a 2 _ avant et après.


Oui, et ça ne fonctione pas.


Ici ça fonctionne.

-*- mode: compilation; default-directory: "/tmp/" -*-
Compilation started at Sun Feb 4 16:08:40

cat f.c && make f && ./f
#include <stdio.h>

#include <assert.h>


int main(void){

printf("%sn", __func__);

return 0;
}


cc f.c -o f
main

Compilation finished at Sun Feb 4 16:08:42

--
__Pascal Bourguignon__ http://www.informatimago.com/

PLEASE NOTE: Some quantum physics theories suggest that when the
consumer is not directly observing this product, it may cease to
exist or will exist only in a vague and undetermined state.



Avatar
espie
In article <42mxh.9061$,
Jean Pierre Daviau wrote:

"Eric Levenez" a écrit dans le message de
news: C1EA46BC.9D47B%
Le 3/02/07 13:49, dans
<MF%wh.83911$, « Jean

Error E2451 cpress.c 65: Undefined symbol '_func_' in function
main


Il y a 2 _ avant et après.


Oui, et ¸ca ne fonctione pas.

Tiens, garcon, voila dix centimes, va t'acheter un compilo recent.


__func__, c'est du C99, une norme sortie il y a maintenant 8 ans.
Il y a des bouts de la norme qui sont coton a implementer, mais pas
__func__. Tout compilo qui n'a pas encore __func__ dans ses cartons
sent furieusement le sapin...



Avatar
Eric Levenez
Le 4/02/07 16:24, dans <eq4trn$6eo$, « Marc Espie »
a écrit :

In article <42mxh.9061$,
Jean Pierre Daviau wrote:

"Eric Levenez" a écrit dans le message de
news: C1EA46BC.9D47B%
Le 3/02/07 13:49, dans
<MF%wh.83911$, « Jean

Error E2451 cpress.c 65: Undefined symbol '_func_' in function
main


Il y a 2 _ avant et après.


Oui, et ¸ca ne fonctione pas.

Tiens, garcon, voila dix centimes, va t'acheter un compilo recent.


__func__, c'est du C99, une norme sortie il y a maintenant 8 ans.


Et ce __func__ existait déjà dans des compilos bien plus vieux.

Il y a des bouts de la norme qui sont coton a implementer, mais pas
__func__. Tout compilo qui n'a pas encore __func__ dans ses cartons
sent furieusement le sapin...


Yep.

--
Éric Lévénez -- <http://www.levenez.com/&gt;
Unix is not only an OS, it's a way of life.




Avatar
Jean Pierre Daviau
"Pascal Bourguignon" a écrit dans le
message de news:
"Jean Pierre Daviau" writes:

"Eric Levenez" a écrit dans le message de
news: C1EA46BC.9D47B%
Le 3/02/07 13:49, dans
<MF%wh.83911$, « Jean

Error E2451 cpress.c 65: Undefined symbol '_func_' in
function
main


Il y a 2 _ avant et après.


Oui, et ça ne fonctione pas.


Ici ça fonctionne.

-*- mode: compilation; default-directory: "/tmp/" -*-
Compilation started at Sun Feb 4 16:08:40

cat f.c && make f && ./f
#include <stdio.h>

#include <assert.h>


int main(void){

printf("%sn", __func__);

return 0;
}


cc f.c -o f
main

C'est un truc gcc seulement?





Avatar
Jean Pierre Daviau
cat f.c && make f && ./f


C'est quoi cat?

1 2