198 잘못된 메모리 액세스로 인해 발생하는 오류 인 SEGV 에는 두 가지 일반적인 종류가 있습니다. 권한이 잘못된 페이지에 액세스했습니다. 예를 들어, 읽기 전용이지만 코드가 쓰기를 시도했습니다. 이것은 SEGV_ACCERR로보 고됩니다 . 응용 프로그램의 주소 공간에 전혀 매핑되지 않은 페이지에 액세스했습니다. 이는 종종 널 포인터 또는 작은 정수 값으로 손상된 포인터를 역 참조한 결과입니다. 이것은 SEGV_MAPERR로보 고됩니다 . SEGV_MAPERR에 대한 일종의 문서 (인덱싱 된 Linux 소스 코드)는 http://lxr.free-electrons.com/ident?i=SEGV_MAPERR 입니다. — Ahcox 소스 8 이것이 더 완전하고 도움 이 되는데 왜 stackoverflow.com/a/1000010/358475 가 답으로 표시됩니까? — OldPeculier 2015-04-28 2 질문 및 기타 답변이 내 답변보다 훨씬 오래되었습니다. 나는 적어도 그것을 개선하기 위해 다른 답변을 편집했습니다. — ahcox EXC_BAD_ACCESS 예외 유형과 구별되는 상황을 아는 것은 흥미로울 것입니다. 예를 들어 페이지가 매핑되었지만 할당되지 않았습니까 (/ 최근 할당 해제 됨)? — Bobjt 6 한 가지 예 SEGV_MAPERR는 스택 오버플로입니다 (말장난 의도 없음). : D — 안티 Haapala 2 더 많은 SEGV 유형이 있습니다. elixir.free-electrons.com/linux/latest/source/include/uapi/… — tomasz
40 세분화 오류입니다. 아마도 매달린 포인터 문제 또는 일종의 버퍼 오버플로 일 것입니다. SIGSSEGV 문제, 세그멘테이션 오류를 기반으로이를 종료하는 신호입니다. 매달린 포인터와 오버플로 문제를 확인하십시오. 코어 덤프를 활성화하면 문제를 파악하는 데 도움이됩니다. — Sev 소스