[linux] SEGV_MAPERR은 무엇입니까?

무엇 SEGV_MAPERR, 왜 항상 함께 오는가 SIGSEGV?



답변

잘못된 메모리 액세스로 인해 발생하는 오류 인 SEGV 에는 두 가지 일반적인 종류가 있습니다.

  1. 권한이 잘못된 페이지에 액세스했습니다. 예를 들어, 읽기 전용이지만 코드가 쓰기를 시도했습니다. 이것은 SEGV_ACCERR로보 고됩니다 .
  2. 응용 프로그램의 주소 공간에 전혀 매핑되지 않은 페이지에 액세스했습니다. 이는 종종 널 포인터 또는 작은 정수 값으로 손상된 포인터를 역 참조한 결과입니다. 이것은 SEGV_MAPERR로보 고됩니다 .

SEGV_MAPERR에 대한 일종의 문서 (인덱싱 된 Linux 소스 코드)는 http://lxr.free-electrons.com/ident?i=SEGV_MAPERR 입니다.


답변

세분화 오류입니다. 아마도 매달린 포인터 문제 또는 일종의 버퍼 오버플로 일 것입니다.

SIGSSEGV 문제, 세그멘테이션 오류를 기반으로이를 종료하는 신호입니다.

매달린 포인터와 오버플로 문제를 확인하십시오.

코어 덤프를 활성화하면 문제를 파악하는 데 도움이됩니다.


답변