Trace d'appelsEn informatique, une trace d'appels (trace de pile[1], stack trace, stack backtrace[2] ou encore stack traceback[3] en anglais) est la représentation des piles d'exécution à un moment donné lors de l'exécution d'un programme informatique. Les développeurs utilisent couramment les traces d'appel lors de séances de débogage interactives ou post mortem. Les utilisateurs finaux peuvent parfois voir des traces d'appels affichées avec un message d'erreur, que l'utilisateur peut alors rapporter aux développeurs. Une trace d'appels remonte la séquence d'appels de fonctions - jusqu'au point où la trace d'appels est générée. Dans un scénario post-mortem, cela remonte jusqu'à la fonction où l'erreur a eu lieu (mais qui ne l'a pas nécessairement provoquée). Les appels de fonctions « frères » (exécutés et terminés avant la fonction courante) n'apparaissent pas dans une trace d'appels. ExemplePar exemple, le programme Python suivant contient une erreur : def a():
b()
def b():
c()
def c():
erreur()
a()
Lorsque l'on exécute ce programme, on appelle la fonction Traceback (most recent call last): File "tb.py", line 10, in <module> a() File "tb.py", line 2, in a b() File "tb.py", line 5, in b c() File "tb.py", line 8, in c erreur() NameError: global name 'erreur' is not defined La trace d'appels montre où l'erreur a eu lieu, c'est-à-dire dans la fonction Implémentation par les langagesLa plupart des langages de programmation, y compris Java et C#, permettent nativement de récupérer la trace d'appels courante par des fonctions propres au langage. C++ ne permet pas de la récupérer nativement, mais les utilisateurs de C++ peuvent récupérer la trace d'appels avec la bibliothèque stacktrace par exemple. En JavaScript, les exceptions contiennent la trace d'appels d'où l'exception a été lancée. Voir aussiRéférences
|
Portal di Ensiklopedia Dunia