Leak Defense

메모리 누수 조건

힙에 할당한 객체를 더 이상 쓰지 않는데도 delete나 소유권 해제가 실행되지 않으면 메모리가 계속 쌓입니다.

예방 우선새 코드에서는 std::unique_ptr, std::shared_ptr, RAII로 해제 경로를 자동화합니다.
누수 위험 신호포인터 재할당, 예외로 건너뛴 delete, 순환 참조는 누수 후보입니다.
Valgrind

누수 블록 할당 위치

--leak-check=full로 definitely lost 같은 분류를 확인합니다.

ASan

런타임 계측 오류 탐지

-fsanitize=address는 누수뿐 아니라 use-after-free와 double-free도 찾습니다.

clang-tidy

실행 전 소유권 문제를 줄입니다

CI에 정적 분석을 넣으면 리뷰 전에 modernize, bugprone, performance 경고를 볼 수 있습니다.

Definitely lost프로그램이 해당 블록의 포인터를 완전히 잃어 해제할 방법이 사라진 상태입니다.
Possibly lost포인터가 내부 주소처럼 남아 있을 가능성이 있어 코드 맥락을 확인해야 합니다.
Still reachable종료 시점까지 접근 가능한 블록이지만 의도한 캐시인지 방치된 소유권인지 구분합니다.

누수 경로 누수 대응은 스마트 포인터로 예방하고, sanitizer와 장시간 테스트로 재현하며, 보고서의 블록 상태에 따라 우선순위를 정합니다.