環境是各種運平臺VC++ 9(XP及更高版本)是否安全趕上EXCEPTION_GUARD_PAGE
我正在寫一個未處理的異常處理。我的內核日子裏有一個模糊的回憶,那就是抓住EXCEPTION_GUARD_PAGE是不好的,因爲這是生成的,它告訴操作系統放大堆棧。
我的問題是雙重的:
這樣的異常可發生在用戶空間?
如果是這樣,是否可以接受它?
我對使用它做任何事情都不感興趣。我只是想知道是否需要將特殊代碼放入而不是趕上它(因爲我現在捕捉所有內容)。
__Update:__
我回憶起我的來源,這是Raymond Chen的博客(http://blogs.msdn.com/b/oldnewthing/archive/2006/09/27/773741.aspx)
我最初擔心的是捕獲所有異常的時候,如果我抓住一個EXCEPTION_GUARD_PAGE,我可能防止操作系統看到異常並擴大堆棧。
在進一步的思考中,我懷疑EXCEPTION_GUARD_PAGE可能在生成它的讀/寫操作期間在內核中處理,因此永遠無法達到我的用戶空間代碼。
我想我在找人確認(或相反)。
__Second更新:__
因爲沒有人真正地回答了這個問題我沒有選擇的答案。我會放開它,希望有人可能會提供我所尋求的信息。
__Third Update__
仍住在(微弱)的希望。
__Fourth Update__
嗯,我從來沒有得到一個可用的答案。當我問這個問題時,我已經完成了我正在寫的模塊。我認爲這個問題是出於實際目的而死的。我可能不會再更新。
Windows不會自動放大堆棧。 – Christopher 2010-06-17 10:06:57
克里斯托弗 - 是的。閱讀我鏈接到的Raymond Chen曲目。 – 2010-06-17 17:15:10