正如你可以看到上面的线程窗口,有在完全相同的位置4个的Win32线程,怎么理解呢? UPDATE
7C92E4BE mov dword ptr [esp],eax
7C92E4C1 mov dword ptr [esp+4],0
7C92E4C9 mov dword ptr [esp+8],0
7C92E4D1 mov dword ptr [esp+10h],0
7C92E4D9 push esp
7C92E4DA call 7C92E508
7C92E4DF mov eax,dword ptr [esp]
7C92E4E2 mov esp,ebp
7C92E4E4 pop ebp
7C92E4E5 ret
7C92E4E6 lea esp,[esp]
7C92E4ED lea ecx,[ecx]
7C92E4F0 mov edx,esp
7C92E4F2 sysenter
7C92E4F4 ret
位置字段是否总是指向**下一个**地址,或者只是在特殊情况下如'sysenter'? – COMer 2010-09-12 23:48:28
当你在看反汇编,然后是,总是。即使你正在谈论“调用”指令,一旦它被调用,该指令就结束了。就处理器而言,操作已经完成;它将一个值压入堆栈并更改了IP寄存器。因此,如果您正在查看调用堆栈的那部分内容,调试器将指示代码从调用返回时将执行的下一条指令。 – Gerald 2010-09-13 03:05:21
如果符号可用且位置显示函数/方法名称,如GrabberCB :: BufferCB,则表示它正在执行该函数/方法内的某些代码。 – Gerald 2010-09-13 03:10:31