코드를 수정하다보면 이런 Exception_Access_violation에러가 나올때가 있다
(저같은 언리얼 응애들이 많이 봅니다)
이런경우는 널(null)포인터 에러 오류나 잘못된 메모리에 접근해서 생기는 에러이다
한마디로 가리키는 포인터가 아무것도 없는데 그 포인터로 먼가를 하니
(아무것도없음) 아무것도 없음 아 이걸 해 ! 를 해버리니 엔진이 튕겨버리는것이다
에러 콜스택 로그를 잘 보면 HitTestCrow.cpp 159번줄에서 에러가 났을 가능성이 제일 크다
159번의 코드를 잘 보자
디버깅모드로 실행해보자
긴 사투 후에 에러의 오류를 찾았다
위젯 포인터는 게임 시작마다 새로 생성하는데
이전포인트는 반드시 RemoveFromParent 하고 뒤에 +nullptr 처리해줘야 안전하다는것이다
이미 파괴된 (destroy)된 객체를 여전히 가리키고 있는 포인터를 dangling pointer라고 하는데
danggling pointer 자체가 nullptr이 아니였던것이다
즉 죽은 객체를 살아있는것처럼 가리키는 크래시를 유발하는 매우 위험한 포인터다
danggling pointer를 nullptr로 해주고 IsValid로 방어코드를 작성해주었다
(보통 !=nullptr 이나 IsValid로 방어코드를 작성합니다)
잘된다 (감격 ㅠㅠㅠ)
'Unreal 디버깅' 카테고리의 다른 글
TActorIterator객체 다수사용 (0) | 2025.05.17 |
---|---|
Unreal - 텍스처 스트리밍 풀이 예산을 초과했습니다 에러 고치기 (0) | 2025.05.15 |
BehaviorTree의 currentTime 디버깅 (0) | 2025.05.09 |
Unreal - 이동중 낑김현상 sweep부분 (0) | 2025.04.25 |
Unreal - 75퍼센트 무한로딩 (0) | 2025.04.10 |