2009-06-04 4 views
4

Est-il possible, avec les compilateurs Visual Studio, d'écrire 2 fonctions qui sont appelées avant d'appeler d'autres fonctions et après l'exécution des fonctions? Dans gcc, vous pouvez le faire avec __cyg_profile_func_*() fonctions:Fonctions prolog/epilog personnalisées pour le profilage

void __cyg_profile_func_enter(void *func_address, void *call_site) 
           __attribute__ ((no_instrument_function)); 

void __cyg_profile_func_exit (void *func_address, void *call_site) 
           __attribute__ ((no_instrument_function)); 

je besoin d'une solution qui fonctionne pour les logiciels en mode noyau. Je pense que Microsoft Detours peut être utile, mais l'édition gratuite est de 32 bits seulement et mes pilotes sont en 64 bits.

Je souhaite générer le call graph pour le code spécifique.

Merci.

Répondre

5
  1. Vous pouvez utiliser le commutateur /Gh/GH de cl pour créer des crochets théàtre/Pexit.
  2. Pour les API d'accrochage libre un coup d'oeil à:
    2.1 easyhook
    2,2 N-CodeHook
+0

Merci beaucoup./Gh/GH sont exactement ce dont j'ai besoin. – Terminus

Questions connexes