OS · HEAP
힙 메모리 오류 분류
메모리 오류는 언제 할당했고 언제 해제했는지, 그리고 해제 후 포인터를 어떻게 다루었는지의 시간 순서 문제입니다.
관찰 신호
symptom
점진적 증가
RSS가 계속 늘면 누수나 캐시 무제한 증가를 의심합니다.
불규칙 크래시
해제 후 접근은 즉시 터지지 않고 나중에 드러날 수 있습니다.
오류 유형
bug map
Memory Leak
할당한 블록을 더 이상 쓰지 않지만 free하지 않아 누적됩니다.
Dangling Pointer
free 이후에도 포인터 값이 남아 잘못된 접근을 유도합니다.
Double Free
같은 블록을 두 번 반환해 할당자의 내부 구조를 손상합니다.
Overflow
할당 크기보다 많이 써서 인접 블록 메타데이터를 덮습니다.
방어 도구
tooling
ASan
컴파일러 계측으로 use-after-free와 overflow를 빠르게 잡습니다.
Valgrind
느리지만 누수와 잘못된 접근 경로를 자세히 추적합니다.
소유권 규칙
누가 free 책임을 갖는지 함수 경계에서 명확히 문서화합니다.