Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

11105
637
415734


[ARM프로세서] 익셉션(Exception)과 관련된 레지스터 Arm: Exception Overview

실전 SW 개발자 입장에서 익셉션이 발생했을 때 확인해야 할 가장 중요한 정보는 레지스터입니다. ARM 프로세서는 익셉션을 감지하면 레지스터에 익셉션과 관련된 정보를 업데이트하기 때문입니다. 그렇다면 레지스터를 통해 SW 개발자는 어떤 정보를 얻을 수 있을까요?

먼저, 익셉션이 발생했을 때 실행된 명령어의 정확한 주소를 확인할 수 있습니다. ARMv7 아키텍처에서는 r14_<mode> 레지스터, ARMv8에서는 ELR_ELx 레지스터에 익셉션이 발생한 주소를 저장합니다. 이 정보를 참고로 함수의 호출 흐름까지 파악할 수 있습니다.

만약 익셉션의 타입이 메모리 어보트이면 레지스터 정보를 참고로 정확히 어떤 이유로 익셉션이 발생했는지 디버깅할 수 있습니다.

이 밖에도 ARMv7와 ARMv8 아키텍처에서 다음과 같은 레지스터를 통해 익셉션에 대한 유용한 정보를 제공합니다.


표 7.4 익셉션과 관련된 레지스터

ARMv7와 ARMv8 아키텍처 별로 익셉션의 정보를 나타내는 레지스터는 8장, 10장에서 자세히 설명합니다. 

---
"이 포스팅이 유익하다고 생각되시면 공감 혹은 댓글로 응원해주시면 감사하겠습니다. 
"혹시 궁금한 점이 있으면 댓글로 질문 남겨주세요. 아는 한 성실히 답변 올려드리겠습니다!"

​Thanks,
Guillermo Austin Kim(austindh.kim@gmail.com)
---



Reference: ARM 프로세서 익셉션 소개

익셉션이란? 
익셉션의 주요 개념  
    ❑ 익셉션의 타입 소개
익셉션과 같이 배워야 하는 운영체제 지식

Written by <디버깅을 통해 배우는 리눅스 커널의 구조와 원리> 저자





핑백

덧글

댓글 입력 영역