Pregunta

Estoy tratando de depurar algunos win32API como Createthread que devuelve un identificador. ¿Cómo obtener los valores de retorno en windbg?

Investigué un poco y descubrí que los valores de retorno generalmente se almacenan en el registro EAx.

Si pongo un punto de interrupción en CreateThread, entonces puedo ingresar al ensamblaje de Createthread y, finalmente, presionaré la declaración ret, lo que significa que Createthread está regresando.

En este punto, ¿debo verificar el valor del registro EAX para obtener el valor HANDLE o es de alguna otra manera?

¿Fue útil?

Solución

No hay otra forma que no sea básicamente lo mismo que probar eax.

Si quieres ser pedante:

eax funciona bien para 32 bits.

rax es lo que querrás para aplicaciones de 64 bits

ret0 es lo que utiliza itanium

$ retreg es un pseudo registro que puede usar que se comportará correctamente en todos los casos.

por ejemplo

0:028> r rax
rax=00000000fff02000
0:028> r eax
eax=fff02000
0:028> r $retreg 
$retreg=00000000fff02000
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top