J'essaye de faire un petit outil qui utilise le Debugger Engine API, mais j'ai un succès très limité.IDebugControl :: WaitForEvent fonctionne une fois puis retourne E_HANDLE
Je peux obtenir mes instances IDebugClient et IDebugControl, et à partir de là je peux joindre un processus utilisateur en cours d'exécution. J'entre alors dans une boucle principale où j'appelle WaitForEvent, OutputStackTrace, SetExecutionStatus (DEBUG_STATUS_GO
), et répète. En substance, il s'agira d'un profileur basé sur l'échantillonnage très brut.
Bon jusqu'à présent ..
Ma boucle fonctionne pour une itération complète, je peux voir une trace de pile affiché et le processus cible retourne dans un état de fonctionnement.
Le problème que j'ai est que sur ma 2ème itération l'appel à WaitForEvent
renvoie E_HANDLE
("Le handle est invalide"). Je ne peux pas voir dans la documentation pourquoi cette erreur doit être renvoyée. Est-ce que quelqu'un sait pourquoi cela pourrait se produire?