Piles des appels dans l'API de profilage
Mise à jour : novembre 2007
L'API de profilage propose deux méthodes d'obtention des piles des appels : un instantané de la pile qui active la collecte fragmentée des piles des appels et une pile cachée qui suit la pile des appels à chaque instant. Cette rubrique propose une vue d'ensemble de ces méthodes.
Instantané de la pile
Un instantané de la pile correspond à une trace de la pile d'un thread à un instant T. L'API de profilage prend en charge le traçage des fonctions managées sur la pile, mais il laisse le traçage des fonctions non managées à l'explorateur de piles du profileur.
Pour plus d'informations sur la programmation du profileur pour explorer des piles managées, consultez la méthode ICorProfilerInfo2::DoStackSnapshot dans cette documentation et Profiler Stack Walking in the .NET Framework 2.0: Basics and Beyond dans MSDN Library.
Pile cachée
En cas d'utilisation trop fréquente de la méthode instantanée, des problèmes de performances risquent rapidement d'apparaître. Pour suivre fréquemment les traces de la pile, utilisez plutôt le profileur pour générer une pile cachée à l'aide de rappels d'exception FunctionEnter2, FunctionLeave2, FunctionTailcall2 et ICorProfilerCallback2. La pile cachée est toujours à jour et peut être rapidement copiée dans le support de stockage chaque fois qu'un instantané de la pile s'avère nécessaire.
Une pile cachée peut obtenir des arguments de fonction, des valeurs de retour et des informations sur les instanciations génériques. Ces informations sont uniquement disponibles via la pile cachée et peuvent être obtenues lorsque le contrôle est transmis à une fonction. Ces informations risquent toutefois de ne plus être disponibles par la suite, lors de l'exécution de la fonction.
Voir aussi
Référence
ICorProfilerInfo2::SetEnterLeaveFunctionHooks2, méthode