Question

J'essaie de déboguer certains win32API comme Createthread qui renvoie un descripteur. Comment obtenir les valeurs de retour dans windbg?

J'ai effectué des recherches et découvert que les valeurs renvoyées étaient généralement stockées dans le registre EAx.

Si je mets un point d'arrêt sur CreateThread, je peux entrer dans l'assemblage de Createthread et, au bout du compte, je vais appuyer sur l'instruction ret qui signifie que Createthread est de retour.

À ce stade, dois-je vérifier la valeur du registre EAX pour obtenir la valeur HANDLE ou est-ce un autre moyen?

Était-ce utile?

La solution

Il n'y a pas d'autre moyen que de tester eax.

Si vous voulez devenir pédant:

eax fonctionne bien pour 32 bits.

rax est ce que vous voudrez pour les applications 64 bits

ret0 est ce que Itanium utilise

$ retreg est un pseudo registre que vous pouvez utiliser et qui se comportera 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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top