Une procédure est appelée par plusieurs autres procédures.
Est-il possible de savoir quelle est la procédure qui a appelé cette
procédure, autrement qu'en passant un paramètre ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-Marc
"Patrick Fredin" a écrit dans le message de news:
Bonjour,
Une procédure est appelée par plusieurs autres procédures. Est-il possible de savoir quelle est la procédure qui a appelé cette procédure, autrement qu'en passant un paramètre ?
Hello,
non ce n'est pas possible. Tu peux soit utiliser un paramètre, soit généraliser, comme suit:
Tu places dans toutes tes procédure, à l'entrée et à la sortie (ou les sorties) du code du genre: BEGIN_FUNCTION("ma_fonction") ... END_FUNCTION("ma_fonction")
Le BEGIN empile dans une LIFO publique ('PUSH'), le END dépile ('POP').
A tout moment, tu peux regarder dans la LIFO pour savoir qui a appelé qui.
C'est ce que fait le débuggueur quand il t'affiche la pile d'appel.
Ca peut être très utile pour débugguer en cas de soucis, en dehors de l'environnement de développement.
C'est une technique classique d'investigation et de logging de code. Utile aussi pour faire du profilage (en modifiant légèrement).
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
"Patrick Fredin" <nospam_patrick.fredin@iquebec.com> a écrit dans le message
de news:A1A5F1EA-40C1-4289-8080-B103B1EA0B29@microsoft.com...
Bonjour,
Une procédure est appelée par plusieurs autres procédures.
Est-il possible de savoir quelle est la procédure qui a appelé cette
procédure, autrement qu'en passant un paramètre ?
Hello,
non ce n'est pas possible. Tu peux soit utiliser un paramètre, soit
généraliser, comme suit:
Tu places dans toutes tes procédure, à l'entrée et à la sortie (ou les
sorties)
du code du genre:
BEGIN_FUNCTION("ma_fonction")
...
END_FUNCTION("ma_fonction")
Le BEGIN empile dans une LIFO publique ('PUSH'), le END dépile ('POP').
A tout moment, tu peux regarder dans la LIFO pour savoir qui a appelé qui.
C'est ce que fait le débuggueur quand il t'affiche la pile d'appel.
Ca peut être très utile pour débugguer en cas de soucis, en dehors de
l'environnement
de développement.
C'est une technique classique d'investigation et de logging de code. Utile
aussi pour
faire du profilage (en modifiant légèrement).
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
Une procédure est appelée par plusieurs autres procédures. Est-il possible de savoir quelle est la procédure qui a appelé cette procédure, autrement qu'en passant un paramètre ?
Hello,
non ce n'est pas possible. Tu peux soit utiliser un paramètre, soit généraliser, comme suit:
Tu places dans toutes tes procédure, à l'entrée et à la sortie (ou les sorties) du code du genre: BEGIN_FUNCTION("ma_fonction") ... END_FUNCTION("ma_fonction")
Le BEGIN empile dans une LIFO publique ('PUSH'), le END dépile ('POP').
A tout moment, tu peux regarder dans la LIFO pour savoir qui a appelé qui.
C'est ce que fait le débuggueur quand il t'affiche la pile d'appel.
Ca peut être très utile pour débugguer en cas de soucis, en dehors de l'environnement de développement.
C'est une technique classique d'investigation et de logging de code. Utile aussi pour faire du profilage (en modifiant légèrement).
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
Patrick Fredin
Merci beaucoup pour ta réponse.
C'est quoi une LIFO ?
Merci.
-- Patrick
"Jean-Marc" wrote:
"Patrick Fredin" a écrit dans le message de news: > Bonjour, > > Une procédure est appelée par plusieurs autres procédures. > Est-il possible de savoir quelle est la procédure qui a appelé cette > procédure, autrement qu'en passant un paramètre ?
Hello,
non ce n'est pas possible. Tu peux soit utiliser un paramètre, soit généraliser, comme suit:
Tu places dans toutes tes procédure, à l'entrée et à la sortie (ou les sorties) du code du genre: BEGIN_FUNCTION("ma_fonction") .... END_FUNCTION("ma_fonction")
Le BEGIN empile dans une LIFO publique ('PUSH'), le END dépile ('POP').
A tout moment, tu peux regarder dans la LIFO pour savoir qui a appelé qui.
C'est ce que fait le débuggueur quand il t'affiche la pile d'appel.
Ca peut être très utile pour débugguer en cas de soucis, en dehors de l'environnement de développement.
C'est une technique classique d'investigation et de logging de code. Utile aussi pour faire du profilage (en modifiant légèrement).
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
Merci beaucoup pour ta réponse.
C'est quoi une LIFO ?
Merci.
--
Patrick
"Jean-Marc" wrote:
"Patrick Fredin" <nospam_patrick.fredin@iquebec.com> a écrit dans le message
de news:A1A5F1EA-40C1-4289-8080-B103B1EA0B29@microsoft.com...
> Bonjour,
>
> Une procédure est appelée par plusieurs autres procédures.
> Est-il possible de savoir quelle est la procédure qui a appelé cette
> procédure, autrement qu'en passant un paramètre ?
Hello,
non ce n'est pas possible. Tu peux soit utiliser un paramètre, soit
généraliser, comme suit:
Tu places dans toutes tes procédure, à l'entrée et à la sortie (ou les
sorties)
du code du genre:
BEGIN_FUNCTION("ma_fonction")
....
END_FUNCTION("ma_fonction")
Le BEGIN empile dans une LIFO publique ('PUSH'), le END dépile ('POP').
A tout moment, tu peux regarder dans la LIFO pour savoir qui a appelé qui.
C'est ce que fait le débuggueur quand il t'affiche la pile d'appel.
Ca peut être très utile pour débugguer en cas de soucis, en dehors de
l'environnement
de développement.
C'est une technique classique d'investigation et de logging de code. Utile
aussi pour
faire du profilage (en modifiant légèrement).
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
"Patrick Fredin" a écrit dans le message de news: > Bonjour, > > Une procédure est appelée par plusieurs autres procédures. > Est-il possible de savoir quelle est la procédure qui a appelé cette > procédure, autrement qu'en passant un paramètre ?
Hello,
non ce n'est pas possible. Tu peux soit utiliser un paramètre, soit généraliser, comme suit:
Tu places dans toutes tes procédure, à l'entrée et à la sortie (ou les sorties) du code du genre: BEGIN_FUNCTION("ma_fonction") .... END_FUNCTION("ma_fonction")
Le BEGIN empile dans une LIFO publique ('PUSH'), le END dépile ('POP').
A tout moment, tu peux regarder dans la LIFO pour savoir qui a appelé qui.
C'est ce que fait le débuggueur quand il t'affiche la pile d'appel.
Ca peut être très utile pour débugguer en cas de soucis, en dehors de l'environnement de développement.
C'est une technique classique d'investigation et de logging de code. Utile aussi pour faire du profilage (en modifiant légèrement).
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
Loïc Carrère
Patrick Fredin a émis l'idée suivante :
Merci beaucoup pour ta réponse.
C'est quoi une LIFO ?
Merci.
-- Patrick
"Jean-Marc" wrote:
"Patrick Fredin" a écrit dans le message de news:
Bonjour,
Une procédure est appelée par plusieurs autres procédures. Est-il possible de savoir quelle est la procédure qui a appelé cette procédure, autrement qu'en passant un paramètre ?
Hello,
non ce n'est pas possible. Tu peux soit utiliser un paramètre, soit généraliser, comme suit:
Tu places dans toutes tes procédure, à l'entrée et à la sortie (ou les sorties) du code du genre: BEGIN_FUNCTION("ma_fonction") .... END_FUNCTION("ma_fonction")
Le BEGIN empile dans une LIFO publique ('PUSH'), le END dépile ('POP').
A tout moment, tu peux regarder dans la LIFO pour savoir qui a appelé qui.
C'est ce que fait le débuggueur quand il t'affiche la pile d'appel.
Ca peut être très utile pour débugguer en cas de soucis, en dehors de l'environnement de développement.
C'est une technique classique d'investigation et de logging de code. Utile aussi pour faire du profilage (en modifiant légèrement).
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
Euh.. par LIFO je suppose que JM parle d'une pile qui est une structure de données se basant sur le principe LIFO (last in first out).
La gestion d'une telle structure de données pourait effectivement te permettre de retrouver tes points d'appel.
Patrick Fredin a émis l'idée suivante :
Merci beaucoup pour ta réponse.
C'est quoi une LIFO ?
Merci.
--
Patrick
"Jean-Marc" wrote:
"Patrick Fredin" <nospam_patrick.fredin@iquebec.com> a écrit dans le message
de news:A1A5F1EA-40C1-4289-8080-B103B1EA0B29@microsoft.com...
Bonjour,
Une procédure est appelée par plusieurs autres procédures.
Est-il possible de savoir quelle est la procédure qui a appelé cette
procédure, autrement qu'en passant un paramètre ?
Hello,
non ce n'est pas possible. Tu peux soit utiliser un paramètre, soit
généraliser, comme suit:
Tu places dans toutes tes procédure, à l'entrée et à la sortie (ou les
sorties)
du code du genre:
BEGIN_FUNCTION("ma_fonction")
....
END_FUNCTION("ma_fonction")
Le BEGIN empile dans une LIFO publique ('PUSH'), le END dépile ('POP').
A tout moment, tu peux regarder dans la LIFO pour savoir qui a appelé qui.
C'est ce que fait le débuggueur quand il t'affiche la pile d'appel.
Ca peut être très utile pour débugguer en cas de soucis, en dehors de
l'environnement
de développement.
C'est une technique classique d'investigation et de logging de code. Utile
aussi pour
faire du profilage (en modifiant légèrement).
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
Euh.. par LIFO je suppose que JM parle d'une pile qui est une structure
de données se basant sur le principe LIFO (last in first out).
La gestion d'une telle structure de données pourait effectivement te
permettre de retrouver tes points d'appel.
Une procédure est appelée par plusieurs autres procédures. Est-il possible de savoir quelle est la procédure qui a appelé cette procédure, autrement qu'en passant un paramètre ?
Hello,
non ce n'est pas possible. Tu peux soit utiliser un paramètre, soit généraliser, comme suit:
Tu places dans toutes tes procédure, à l'entrée et à la sortie (ou les sorties) du code du genre: BEGIN_FUNCTION("ma_fonction") .... END_FUNCTION("ma_fonction")
Le BEGIN empile dans une LIFO publique ('PUSH'), le END dépile ('POP').
A tout moment, tu peux regarder dans la LIFO pour savoir qui a appelé qui.
C'est ce que fait le débuggueur quand il t'affiche la pile d'appel.
Ca peut être très utile pour débugguer en cas de soucis, en dehors de l'environnement de développement.
C'est une technique classique d'investigation et de logging de code. Utile aussi pour faire du profilage (en modifiant légèrement).
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
Euh.. par LIFO je suppose que JM parle d'une pile qui est une structure de données se basant sur le principe LIFO (last in first out).
La gestion d'une telle structure de données pourait effectivement te permettre de retrouver tes points d'appel.
jean-marc
"Loïc Carrère" wrote in message news:
Patrick Fredin a émis l'idée suivante : > Merci beaucoup pour ta réponse. > > C'est quoi une LIFO ? > > Merci. > > -- > Patrick > > > "Jean-Marc" wrote: > >> "Patrick Fredin" a écrit dans le
message
>> de news: >>> Bonjour, >>> >>> Une procédure est appelée par plusieurs autres procédures. >>> Est-il possible de savoir quelle est la procédure qui a appelé cette >>> procédure, autrement qu'en passant un paramètre ? >> >> >> >> Hello, >> >> non ce n'est pas possible. Tu peux soit utiliser un paramètre, soit >> généraliser, comme suit: >> >> Tu places dans toutes tes procédure, à l'entrée et à la sortie (ou les >> sorties) >> du code du genre: >> BEGIN_FUNCTION("ma_fonction") >> .... >> END_FUNCTION("ma_fonction") >> >> Le BEGIN empile dans une LIFO publique ('PUSH'), le END dépile ('POP'). >> >> A tout moment, tu peux regarder dans la LIFO pour savoir qui a appelé
qui.
>> >> C'est ce que fait le débuggueur quand il t'affiche la pile d'appel. >> >> Ca peut être très utile pour débugguer en cas de soucis, en dehors de >> l'environnement >> de développement. >> >> C'est une technique classique d'investigation et de logging de code.
Utile
>> aussi pour >> faire du profilage (en modifiant légèrement). >> >> -- >> Jean-marc >> "There are only 10 kind of people >> those who understand binary and those who don't." >> mailto: remove '_no_spam_' ; >> >>
Euh.. par LIFO je suppose que JM parle d'une pile qui est une structure de données se basant sur le principe LIFO (last in first out).
La gestion d'une telle structure de données pourait effectivement te permettre de retrouver tes points d'appel.
Hello,
oui c'est bien ça. Une Pile LIFO ("Last IN, First OUt") est une structure de données qui permet d'empiler et de dépiler des données, selno le principe "dernier entré, premier sorti":
LA PILE EST VIDE Empile(A) Empile(B) Empile(C)
Depile() => On obtient C Depile() => On obtient B Depile() => On obtient A Depile() => PILE VIDE
C'est une structure de données extrèmement utile.
Pour cette structuire LIFO, on parle en général de "PILE", par opposiotn à une "FIFO" (First IN, First OUT), ou on parle alors en généréle de "FILE".
Tu peux implémenter ta pile (LIFO) avec un tableau et un index statique: Quand tu empiles, tu incrémente l'index et tu mets la donnée. Quand tu dépiles, tu renvoies la donnée qui se trouve à la position de l'index, puis tu décérentes l'index.
Tout simple, efficace, et bien adapté à ce que tu veux faire pour tracer tes appels.
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
"Loïc Carrère" <loic.carrere@asi-concept.fr> wrote in message
news:mn.2d4a7d5a6b3381fe.20273@asi-concept.fr...
Patrick Fredin a émis l'idée suivante :
> Merci beaucoup pour ta réponse.
>
> C'est quoi une LIFO ?
>
> Merci.
>
> --
> Patrick
>
>
> "Jean-Marc" wrote:
>
>> "Patrick Fredin" <nospam_patrick.fredin@iquebec.com> a écrit dans le
message
>> de news:A1A5F1EA-40C1-4289-8080-B103B1EA0B29@microsoft.com...
>>> Bonjour,
>>>
>>> Une procédure est appelée par plusieurs autres procédures.
>>> Est-il possible de savoir quelle est la procédure qui a appelé cette
>>> procédure, autrement qu'en passant un paramètre ?
>>
>>
>>
>> Hello,
>>
>> non ce n'est pas possible. Tu peux soit utiliser un paramètre, soit
>> généraliser, comme suit:
>>
>> Tu places dans toutes tes procédure, à l'entrée et à la sortie (ou les
>> sorties)
>> du code du genre:
>> BEGIN_FUNCTION("ma_fonction")
>> ....
>> END_FUNCTION("ma_fonction")
>>
>> Le BEGIN empile dans une LIFO publique ('PUSH'), le END dépile ('POP').
>>
>> A tout moment, tu peux regarder dans la LIFO pour savoir qui a appelé
qui.
>>
>> C'est ce que fait le débuggueur quand il t'affiche la pile d'appel.
>>
>> Ca peut être très utile pour débugguer en cas de soucis, en dehors de
>> l'environnement
>> de développement.
>>
>> C'est une technique classique d'investigation et de logging de code.
Utile
>> aussi pour
>> faire du profilage (en modifiant légèrement).
>>
>> --
>> Jean-marc
>> "There are only 10 kind of people
>> those who understand binary and those who don't."
>> mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
>>
>>
Euh.. par LIFO je suppose que JM parle d'une pile qui est une structure
de données se basant sur le principe LIFO (last in first out).
La gestion d'une telle structure de données pourait effectivement te
permettre de retrouver tes points d'appel.
Hello,
oui c'est bien ça. Une Pile LIFO ("Last IN, First OUt") est une
structure de données qui permet d'empiler et de dépiler des données,
selno le principe "dernier entré, premier sorti":
LA PILE EST VIDE
Empile(A)
Empile(B)
Empile(C)
Depile() => On obtient C
Depile() => On obtient B
Depile() => On obtient A
Depile() => PILE VIDE
C'est une structure de données extrèmement utile.
Pour cette structuire LIFO, on parle en général de "PILE",
par opposiotn à une "FIFO" (First IN, First OUT), ou on
parle alors en généréle de "FILE".
Tu peux implémenter ta pile (LIFO) avec un tableau et un
index statique:
Quand tu empiles, tu incrémente l'index et tu mets la donnée.
Quand tu dépiles, tu renvoies la donnée qui se trouve à la position
de l'index, puis tu décérentes l'index.
Tout simple, efficace, et bien adapté à ce que tu veux faire pour
tracer tes appels.
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
Patrick Fredin a émis l'idée suivante : > Merci beaucoup pour ta réponse. > > C'est quoi une LIFO ? > > Merci. > > -- > Patrick > > > "Jean-Marc" wrote: > >> "Patrick Fredin" a écrit dans le
message
>> de news: >>> Bonjour, >>> >>> Une procédure est appelée par plusieurs autres procédures. >>> Est-il possible de savoir quelle est la procédure qui a appelé cette >>> procédure, autrement qu'en passant un paramètre ? >> >> >> >> Hello, >> >> non ce n'est pas possible. Tu peux soit utiliser un paramètre, soit >> généraliser, comme suit: >> >> Tu places dans toutes tes procédure, à l'entrée et à la sortie (ou les >> sorties) >> du code du genre: >> BEGIN_FUNCTION("ma_fonction") >> .... >> END_FUNCTION("ma_fonction") >> >> Le BEGIN empile dans une LIFO publique ('PUSH'), le END dépile ('POP'). >> >> A tout moment, tu peux regarder dans la LIFO pour savoir qui a appelé
qui.
>> >> C'est ce que fait le débuggueur quand il t'affiche la pile d'appel. >> >> Ca peut être très utile pour débugguer en cas de soucis, en dehors de >> l'environnement >> de développement. >> >> C'est une technique classique d'investigation et de logging de code.
Utile
>> aussi pour >> faire du profilage (en modifiant légèrement). >> >> -- >> Jean-marc >> "There are only 10 kind of people >> those who understand binary and those who don't." >> mailto: remove '_no_spam_' ; >> >>
Euh.. par LIFO je suppose que JM parle d'une pile qui est une structure de données se basant sur le principe LIFO (last in first out).
La gestion d'une telle structure de données pourait effectivement te permettre de retrouver tes points d'appel.
Hello,
oui c'est bien ça. Une Pile LIFO ("Last IN, First OUt") est une structure de données qui permet d'empiler et de dépiler des données, selno le principe "dernier entré, premier sorti":
LA PILE EST VIDE Empile(A) Empile(B) Empile(C)
Depile() => On obtient C Depile() => On obtient B Depile() => On obtient A Depile() => PILE VIDE
C'est une structure de données extrèmement utile.
Pour cette structuire LIFO, on parle en général de "PILE", par opposiotn à une "FIFO" (First IN, First OUT), ou on parle alors en généréle de "FILE".
Tu peux implémenter ta pile (LIFO) avec un tableau et un index statique: Quand tu empiles, tu incrémente l'index et tu mets la donnée. Quand tu dépiles, tu renvoies la donnée qui se trouve à la position de l'index, puis tu décérentes l'index.
Tout simple, efficace, et bien adapté à ce que tu veux faire pour tracer tes appels.
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;