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 명령행 옵션을 사용하여 운영 체제가 JVM (Java™ Virtual Machine) 을 중지하도록 강제 실행해야 할 수 있습니다. 이 경우, Windows 대화 상자는 충돌이 발생하는 시기를 표시합니다.