프로젝트 목록
개발·진단 도구 프로젝트 · 2025.01–04

C++ Debugging Tools

크래시 덤프, 메모리 할당·해제 기록, 실행 위치 샘플을 남기는 C++ 도구를 만들었습니다. 오류 원인과 해제되지 않은 메모리를 확인하는 수업 과제입니다.

C++WindowsMiniDumpDbgHelpMemory TrackingProfiling
OVERVIEW

프로젝트 소개

크래시 분석 도구, 메모리 추적 도구, 샘플링 프로파일러를 각각 만들었습니다. 오류 상황에서 덤프와 메모리 기록을 남기고, 프로파일러는 LiquidFun/Box2D 테스트 환경에 적용했습니다.

예외가 발생한 순간의 상태와 메모리 할당·해제 내역을 기록합니다. 샘플링 프로파일러는 실행 중인 명령 주소를 모아 함수 이름을 찾고 CSV로 출력하는 프로토타입입니다.

MY CONTRIBUTION

맡은 일

01

크래시 덤프 저장

Windows 예외 처리, MiniDump, DbgHelp로 크래시 당시 실행 상태를 기록했습니다. 이후 디버거에서 덤프와 관련 정보를 열어 원인을 확인할 수 있도록 했습니다.

02

메모리 할당·해제 추적

전역 new/delete에 할당 기록을 연결했습니다. 이미 해제된 주소를 다시 해제하거나 new와 delete의 종류가 맞지 않으면 CSV에 기록합니다. 종료 시에는 해제되지 않은 할당 내역도 남깁니다.

03

실행 위치 샘플링

타이머에서 스레드 컨텍스트의 RIP를 읽고 SymFromAddr로 함수 이름을 찾습니다. 수집한 실행 위치를 집계해 ProfileReport.csv로 출력하도록 작성했습니다.

DELIVERED WORK

개발 결과

  • Windows 예외·MiniDump로 크래시 기록
  • 메모리 할당 추적과 진단 출력
  • RIP 수집 · 심볼 해석 · CSV 출력

수업 프레임워크로 만든 개인 과제입니다. LiquidFun/Box2D에 적용한 샘플링 프로파일러는 실행 위치 수집과 심볼 해석을 실습한 프로토타입입니다.

다음 프로젝트OpenGL Rendering

포트폴리오 질문

질문 더 보기
최대 400자. Enter 전송, Shift+Enter 줄바꿈.