2010-05-11 2 views
3

GPF를 일으킨 프로세스를 검색하는 방법은 무엇입니까?일반 보호 오류

+0

무엇을 실행하고 있습니까? Windows Pre-Win2k? –

+0

Windows XP에서 exe를 실행하려고하는데, CPU 사용량이 높아지고 GPF가 발생하는지 여부를 알고 싶어합니다. – vikram

+1

GPF는 16 비트 창에서 오래된 용어입니다. 같은 것을 의미하는 액세스 위반과 같은 용어로 Win32에서 사용되지 않는 경향이 있습니다. CPU 시간을 많이 사용하는 프로세스도 분명히 중단되지 않았습니다. 당신이 여기서 무엇을 묻고 있는지 분명하지 않습니다. – Stewart

답변

1

귀하의 질문에 대한 확신이 없습니다. GPF - 프로세서가 인터럽트를 발생시키는 상황입니다.

사용자 모드에서 이러한 일이 발생하면 SEH 예외로 변환되어 프로세스에 의해 처리 될 수 있습니다. 처리되지 않으면 프로세스가 "충돌"합니다. 수단 - 추악한 메시지 상자가 표시되고 프로세스가 종료됩니다 (설정에 따라 프로세스가 디버깅되거나 디버그 덤프가 생성되는 등)

커널 모드에서 발생하는 경우 - 두 가지 가능성이 있습니다. . 예외가 허용되는 컨텍스트에서 이러한 상황이 발생하면 SEH 예외가 발생하고 처리됩니다 (사용자 모드와 유사). 그러나 예외가 처리되지 않거나 GPF가 발생한 상황에서 예외가 허용되지 않는 경우 - OS가 종료되어 소위 BSOD (파란 죽음의 화면)가 표시됩니다.

  • OS가 죽으면, 당신은 커널 모드에서 GPF를 발생시킨 시스템 호출을 한 과정을 알고 싶어

    지금 당신의 질문에 대해, 나는 몇 가지 가능성을 참조하십시오. 커널 디버거를 첨부하여 검색 할 수 있습니다. 오류가 발생한 드라이버도 표시됩니다.
  • GPF는 프로세스 내부의 사용자 모드에서 발생하며 처리되지 않습니다. 이 프로세스는 중단되고 어떤 프로세스가 해당 프로세스인지 확실히 알 수 있습니다.
  • GPS가 프로세스 내부에서 발생하여 처리되고 프로세스가 계속 실행됩니다. 그리고 이것에 대해 통보 받기를 원합니다. 이 경우 디버거를 사용하여 프로세스에 연결할 수 있습니다. 프로세스 내에서 SEH 예외가 발생할 때마다 디버거가 OS에 의해 통지됩니다.
관련 문제