2. Memtracer 기능
◦ Malloc, free, new, delete, new[], delete[] 재작성
◦ 동적 메모리 할당 해제에 대한 tracing
◦ 결과에대한 로그출력.
개선이 필요한 기능
◦ 메모리 침범 오류를 확인할수 있는 기능
◦ 메모리 할당 루틴의 안정화
◦ 동적 메모리 할당정보 유지를 위한 구조체 관리 기능
3. ◦ 동적 메모리 할당시 반드시 할당에 성공한다는 보장이 없음.
◦ MS에서 제공하는 new의 경우 new 핸들러 설치후 실패시 계속적인 메모리 할당
요청 수행
4. 할당 받은 메모리가 쓰고 읽기 유용한 상태라는 보장이 없음
유저모드의 윈도 API 존재.
◦ IsBadReadPtr : 읽을수 없는 메모리에 대한 검사.
◦ IsBadWritePtr : 사용할수 없는 메모리에 대한 검사.
리눅스
◦ MmlsAddressValid
5. 할당된 메모리정보를 갖는 구조체연결 관리
◦ 메모리 할당정보 구조체는 사용자에게 메모리 누수에 대한 정보를 일러주므로 리스트의 정보
를 유지하도록 관리
◦ 연결리스트 구조관리
이전 노드와 이후 노드의 비교를 통해 연결리스트의 적합성 유무 판단
연결리스트의 구조가 의도없이 변경되었을때 연결리스트를 재 구성(구현중)
6. 메모리 할당시 corruption 발생을 알수 있게 하는 방법이 필요하다.
◦ 메모리 corruption 문제는 빈번하게 발생하며 이를 사용자에게 알리는 방법
8byte 8byte
8byte
◦ 메모리 할당시 추가적인 사이즈를 투입하여 기록을 남긴다.
◦ 기록된 문자와 비교연산을 통하여 overflow, underflow에 대한 정보를 얻는다.
관련 논문 : c언어 프로그램의 동적메모리 접근오류 테스트도구설계