如何在调试器中显示寄存器EAX的值作为对象?

时间:2010-08-03 15:40:20

标签: c# visual-studio

我想检查方法的返回值,而不必重新执行方法本身。我相信我唯一的选择是使用反汇编程序。在阅读了对Stackflow问题Getting a Method's Return Value in the VS Debugger的回复后,我得出了这个结论。

我认为寄存器EAX中的值是我的返回值。如何在调试器中检查EAX指向的对象?这是我的反汇编退货声明。

   30:             return SomeString();
000001bb  mov         ecx,dword ptr [ebp-3Ch] 
000001be  call        FFF7A320 
000001c3  mov         dword ptr [ebp-78h],eax 
000001c6  mov         eax,dword ptr [ebp-78h] 
000001c9  mov         dword ptr [ebp-4Ch],eax 
000001cc  nop 
000001cd  jmp         000001D8 
000001cf  mov         dword ptr [ebp-1Ch],0 
000001d6  jmp         000001BA 
    31:         }
000001d8  mov         eax,dword ptr [ebp-4Ch] 
000001db  lea         esp,[ebp-0Ch] 
000001de  pop         ebx 
000001df  pop         esi 
000001e0  pop         edi 
000001e1  pop         ebp 
000001e2  ret 

2 个答案:

答案 0 :(得分:4)

在“寄存器”窗口中,选择EAX寄存器值并按Ctrl + C.调试+ Windows +内存+内存1.在地址文本框中,键入0x,Ctrl + V,键入+12。 +12跳过System.Object标头。如果它包含ASCII字符,则在右侧读取它应该没什么问题,忽略空值。

答案 1 :(得分:3)

变量监视窗口中的ISTR [EAX]显示EAX寄存器。