Operating System
CSAPP 9.11 - C 프로그램에서 만나는 메모리 버그 10가지
잘못된 역참조, 초기화 누락, 경계 초과, 포인터 연산, 수명과 해제 문제까지 메모리 버그의 원인과 증상이 멀어지는 이유를 정리했다.
하나의 주제로 이어지는 배움의 기록.
잘못된 역참조, 초기화 누락, 경계 초과, 포인터 연산, 수명과 해제 문제까지 메모리 버그의 원인과 증상이 멀어지는 이유를 정리했다.
포인터 두 개가 같은 메모리를 가리킬 수 있다는 가능성 하나가 어떻게 레지스터 캐싱, 명령어 재배치, SIMD 벡터화까지 막는지, 그리고 지역 변수와 restrict가 그 가능성을 어떻게 없애는지 정리.
C에는 배열 경계 검사가 없다는 사실에서 출발해서, 스택과 힙에서 버퍼 오버플로우가 실제로 어떤 메모리를 덮어쓰는지 가상 메모리 구조로 정리.
타입 정보가 없는 C/C++ 환경에서 BDWGC가 스택과 힙을 워드 단위로 훑어 포인터로 의심되는 값을 마킹하는 방식과, 그로 인해 생기는 오탐 문제를 정리.