我想检查方法的返回值,而不必重新执行方法本身。我相信我唯一的选择是使用反汇编程序。在阅读了对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
答案 0 :(得分:4)
在“寄存器”窗口中,选择EAX寄存器值并按Ctrl + C.调试+ Windows +内存+内存1.在地址文本框中,键入0x,Ctrl + V,键入+12。 +12跳过System.Object标头。如果它包含ASCII字符,则在右侧读取它应该没什么问题,忽略空值。
答案 1 :(得分:3)
变量监视窗口中的ISTR [EAX]
显示EAX寄存器。