【发布时间】:2012-01-14 01:36:50
【问题描述】:
我最近使用/FAsu Visual C++ compiler option 输出了一个特别长的成员函数定义的源+程序集。在汇编输出中,堆栈帧建立后,有一个神秘的_chkstk()函数调用。
_chkstk() 上的 MSDN 页面并没有解释调用这个函数的原因。我也看过 Stack Overflow 问题Allocating a buffer of more a page size on stack will corrupt memory?,但我不明白 OP 和接受的答案在说什么。
_chkstk() CRT 函数的用途是什么?它有什么作用?
【问题讨论】:
-
我的猜测(在阅读了您的链接之后)是该函数设置了保护,因此函数堆栈外的写入将被 CRT 捕获,并且可以像在 C++ 或其他东西中抛出异常一样进行处理。
标签: c++ c windows visual-c++ callstack