2009-06-22 10 views
4

J'essaye de déboguer des win32API comme Createthread qui retourne un handle. Comment obtenir les valeurs de retour dans windbg? J'ai fait quelques recherches et trouvé que les valeurs de retour sont généralement stockées dans le registre EAx. Si je mets un point d'arrêt sur CreateThread alors je peux entrer dans l'assemblage de Createthread et finalement je vais frapper l'instruction ret qui signifie que Createthread est de retour.Comment obtenir la valeur de retour d'une fonction dans windbg?

À ce stade, dois-je vérifier la valeur du registre EAX pour obtenir la valeur HANDLE ou est-ce d'une autre manière?

Répondre

9

Il n'y a pas d'autre moyen qui ne soit pas fondamentalement le même que tester eax.

Si vous voulez obtenir pédant:

EAX fonctionne bien pour 32 bits.

rax est ce que vous voulez pour 64 applications bit

ret0 est ce que itanium utilise

retreg de $ est un pseudo registre, vous pouvez utiliser qui se comporter correctement dans tous les cas.

par exemple.

 
0:028> r rax 
rax=00000000fff02000 
0:028> r eax 
eax=fff02000 
0:028> r $retreg 
$retreg=00000000fff02000 
Questions connexes