如何从windbg中的函数获取返回值?

ana*_*and 4 assembly windbg return-value

我正在尝试调试一些win32API,比如返回句柄的Createthread.如何在windbg中获取返回值?

我做了一些研究,发现返回值一般存储在EAx寄存器中.

如果我在CreateThread上放置断点,那么我可以进入Createthread的程序集,最终我会点击ret语句,这意味着Createthread正在返回.

此时我应该检查EAX寄存器的值以获取HANDLE值还是其他方式?

aar*_*ron 10

没有其他方法与测试eax基本相同.

如果你想变得迂腐:

eax适用于32位.

rax是你想要的64位应用程序

ret0是itanium使用的

$ retreg是一个可以使用的伪寄存器,在所有情况下都能正常运行.

例如

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