!idt 명령을 이용하면 인터럽트 디스패치 테이블(interrupt dispatch table) 을 볼 수 있다.
83 : 255까지 지원되는 인터럽트 서비스 루틴 (ISR) 번호, 디버깅 시 bugcheck 번호
ff517e04 : 해당 인터럽트를 실행할 핸들러가 있는 메모리 위치(ISR) 이다.
(이전 포스트 IRQL 과 Exception 과 Interrupt 에서 참조)
ISR 번호를 보면 crash 시 어떤 일이 있었는지 알 수 있다.
즉 버그 check 코드가 50이 발생 했다면 해당 머신은 exception 혹은 interrupt에 의해 hal!HalpApicRebootService를 실행하게 된다.
항상 말하지만 내 스스로 쓴 글은 혼자 공부하고 유추한 내용이 있을 수 있다.
주위 바란다.