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