Windows でのスタック・オーバーフロー条件

特定の条件の下では、スタック・オーバーフローにより、ダンプの生成時に障害が発生することがあります。

Windows でのスタック・オーバーフローは、以下の出力に示すように、 ExceptionCode の値 c00000fd によって識別されます。
Unhandled exception
Type=Unhandled trap vmState=0x00040000
J9Generic_Signal_Number=00000040 ExceptionCode=c00000fd ExceptionAddress=7F646CA7
 ContextFlags=0001003f
Handler1=7FEE9C60 Handler2=7FEC9770
EDI=23CB4DCC ESI=23CB4DCC EAX=3F286561 EBX=23CAFF30
ECX=23C09CE4 EDX=7F65ED78
EIP=7F646CA7 ESP=24033000 EBP=2403303C EFLAGS=00010202
Module=failing_module.dll
Module_base_address=7F640000 Offset_in_DLL=00006ca7
Target=2_40_20080926_023633_lHdSMr (Windows Server 2003 5.2 build 3790 
Service Pack 2)
CPU=x86 (2 logical CPUs) (0x3ff78000 RAM)

ダンプが成功するか、部分的に成功するか、失敗するかについては、オーバーフローのサイズが影響します。 さらに、コンソール・データは切り捨てられることがあります。 次のようになります。ExceptionCode=c00000fdスタック・オーバーフローが発生しました。 このような状況では、 WinDbg 、Visual Studio、Windows タスク・マネージャーなどの Windows デバッガーを使用して、システム・ダンプ・ファイルを生成できます。 -Xrs コマンド行オプションを使用して、オペレーティング・システムに Java™ 仮想マシンを強制的に停止させることが必要な場合があります。 この場合、クラッシュがいつ発生したかを示す Windows ダイアログ・ボックスが表示されます。