BugCheck 0x50

자주 만날수 있는 디버깅 오류 코드로 PAGE_FAULT_IN_NONPAGED_AREA 에 관한 오류 입니다.

PAGED와 NONPAGED AREA 란
윈도우에서 PAGE는 정보를 사용하기위한 정보를 저장해 놓은 것이라고 생각 하면 되는데, 기본 크기는 4096Byte 입니다. PAGE라는 용어는 여러 곳에서 사용되게 되며, NONPAGED란 가상 메모리화 할 수 없는 영역, 즉 시스템 메모리(실 메모리) 영역에서 오류가 발생했다는 판단 하시면 됩니다.

오류가 발생하는 원인
이유는 크게 2가지로 보실수 있습니다.
첫째는 함수로 지정한 공간이 너무 작은 경우 입력값이 커서 발생할 수 있으며,
두번째는 위의 반대 상황으로, 입력값이 너무 커서 발생할 수 있습니다.
같은 상황 같지만, 장애를 조치하는 방식에 있어서는 엄연히 다른 부분이 되겠지요.

해결 방법
어떠한 값이 잘못된 메모리 영역을 사용하도록 하였는지 확인하는게 키 포인트로, 
잘못된 메모리를 찾았다면, 어떻게 잘못되게 되었는지 역으로 트래킹 해보아야 합니다.
사용할 만한 명령들
!analyze -v
.trap
.frame
dv
dt

보다 자세한 내용은 windbg help 파일을 참조하세요

Facebook Comments

Leave A Reply

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.