에피소드
액세스 위반 C0000005
액세스 위반은 애플리케이션이 잘못된 메모리 주소를 읽거나 쓰거나 실행할 때 발생하는 예외 유형입니다.
예외 코드가 0xC0000005
첫 번째 예외 매개 변수(0)는 위반 유형입니다. 읽기(0), 쓰기(1) 또는 실행(8)
두 번째 예외 매개 변수(1)는 위반의 주소입니다.
Windows용 디버깅 도구에서 이러한 문제를 디버깅할 때 다음 단계를 수행합니다.
- .exr -1
- 예외 코드
- Parameter[0] - 읽기(0), 쓰기(1), 실행(8)
- Parameter[1] - Address
- .ecxr
- 액세스 위반 시 값 등록
- 어셈블러 명령
- 읽기 - 쉼표 오른쪽에 있는 식을 확인합니다.
- 쓰기 - 쉼표의 왼쪽에 있는 식을 확인합니다.
- Execute - 식의 주소 보기
- k
- 액세스 위반 시 호출 스택 보기
다음과 같은 일반적인 시나리오 중 하나로 인해 메모리 주소가 잘못되었을 수 있습니다.
- NULL 포인터 - 0x0 및 0x10000(64K) 사이의 주소 - 예를 들어 일반적으로 반환된 NULL(0x0) 포인터를 반환하는 함수이며 포인터는 확인 없이 액세스되었습니다.
- 메모리 손상 - 주소가 실수로 또는 악의적으로 덮어쓰여졌는데, 일반적으로 버퍼 오버런(또는 언더런)을 통해
- 무료 사용 - 주소 가 유효했지만 해제(데이터) 또는 언로드(코드) 후에 액세스되고 있습니다.
- 비트 대칭 이동 - 하나 이상의 비트가 대칭 이동된 RAM(하드웨어) 문제(드문 경우)
읽기 또는 쓰기 문제는 읽기 또는 쓰기 에피소드를 참조하세요.
실행 문제는 실행 에피소드를 참조하세요.
주소가 0x0 및 0x10000(64K) 사이에 있는 경우 액세스 위반 예외 대신 System.NullReferenceException 예외를 throw하는 CLR 애플리케이션에 유의하세요.
추가 리소스:
액세스 위반은 애플리케이션이 잘못된 메모리 주소를 읽거나 쓰거나 실행할 때 발생하는 예외 유형입니다.
예외 코드가 0xC0000005
첫 번째 예외 매개 변수(0)는 위반 유형입니다. 읽기(0), 쓰기(1) 또는 실행(8)
두 번째 예외 매개 변수(1)는 위반의 주소입니다.
Windows용 디버깅 도구에서 이러한 문제를 디버깅할 때 다음 단계를 수행합니다.
- .exr -1
- 예외 코드
- Parameter[0] - 읽기(0), 쓰기(1), 실행(8)
- Parameter[1] - Address
- .ecxr
- 액세스 위반 시 값 등록
- 어셈블러 명령
- 읽기 - 쉼표 오른쪽에 있는 식을 확인합니다.
- 쓰기 - 쉼표의 왼쪽에 있는 식을 확인합니다.
- Execute - 식의 주소 보기
- k
- 액세스 위반 시 호출 스택 보기
다음과 같은 일반적인 시나리오 중 하나로 인해 메모리 주소가 잘못되었을 수 있습니다.
- NULL 포인터 - 0x0 및 0x10000(64K) 사이의 주소 - 예를 들어 일반적으로 반환된 NULL(0x0) 포인터를 반환하는 함수이며 포인터는 확인 없이 액세스되었습니다.
- 메모리 손상 - 주소가 실수로 또는 악의적으로 덮어쓰여졌는데, 일반적으로 버퍼 오버런(또는 언더런)을 통해
- 무료 사용 - 주소 가 유효했지만 해제(데이터) 또는 언로드(코드) 후에 액세스되고 있습니다.
- 비트 대칭 이동 - 하나 이상의 비트가 대칭 이동된 RAM(하드웨어) 문제(드문 경우)
읽기 또는 쓰기 문제는 읽기 또는 쓰기 에피소드를 참조하세요.
실행 문제는 실행 에피소드를 참조하세요.
주소가 0x0 및 0x10000(64K) 사이에 있는 경우 액세스 위반 예외 대신 System.NullReferenceException 예외를 throw하는 CLR 애플리케이션에 유의하세요.
추가 리소스: