微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我想检查方法的返回值,而不必重新执行方法本身.我相信我唯一的选择是使用反汇编程序.在阅读了对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

解决方法

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐