补上chkstk.asm那一段代码,标红处即为调试停止的地方
程序代码:
public _alloca_probe
_chkstk proc
_alloca_probe = _chkstk
push ecx
; Calculate new TOS.
lea ecx,[esp]+8-4
sub ecx,eax
;Handle allocation size that results in wraparound
;Wraparound will result in StackOverflow exception
sbb eax,eax
not eax
and ecx,eax
mov eax,esp
and eax,not
cs10:
cmp ecx,eax
jb short cs20
mov eax,ecx
pop ecx
xchg esp,eax
mov eax,dword ptr [eax]
mov dword ptr [esp],eax
ret
;Find next lower page and probe
cs20:
sub eax,_PAGESIZE_
test dword ptr [eax],eax
jmp short cs10
_Chkstk endp
end