3

IIS プロセス内から実行するとスタックがオーバーフローするプロセスがありますが、単独で実行すると正常に動作します。それ自体はデフォルトの 1MB スタックを取得すると思いますが、IIS 内ではやや少なくなります。

IIS ワーカー プロセスの混乱を避けるために、IIS プロセス内のサブスレッドを使用してより大きなスタックを割り当てていますが、ドキュメント ( http://msdn.microsoft .com/en-us/library/ms149581.aspx )

スタックがオーバーフローすると、停止したプロセスをデバッガーで表示できますが、スタックが実際に割り当てられたサイズを確認するにはどうすればよいですか?

4

1 に答える 1

2

答えは次のとおりです。

デバッガーで、疑似レジスター TIB にウォッチを追加します ( http://msdn.microsoft.com/en-us/library/aa232399(v=vs.60).aspx )

この値を取得して、そのアドレスをメモリ ウィンドウに表示します。2 番目の 4 バイト ワードから 3 番目の 4 バイト ワードを減算します。リトル エンディアンのバイト順を使用することを忘れないでください。 http://en.wikipedia.org/wiki/Win32_Thread_Information_Block

于 2013-02-21T15:32:01.300 に答える