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

C++ Debugging Tools

크래시 덤프와 메모리 할당 기록, 실행 위치 샘플을 수집해 오류를 살펴보는 C++ 진단 도구를 구현했습니다.

C++WindowsMiniDumpDbgHelpMemory TrackingProfiling
OVERVIEW

프로젝트 소개

크래시 분석·메모리 추적·샘플링 프로파일러를 각각 만든 개인 과제입니다. 오류 시나리오에서 덤프와 메모리 기록을 남기고, 샘플링 프로파일러는 LiquidFun/Box2D 테스트 환경에 연결했습니다.

예외 시점의 덤프와 할당·해제 기록, 함수 실행 위치 샘플을 수집합니다. 샘플링 도구는 실행 위치를 모으고 심볼을 해석해 CSV로 출력하는 프로토타입입니다.

MY CONTRIBUTION

담당한 구현

01

크래시 순간의 상태 남기기

Windows 예외 처리와 MiniDump, DbgHelp를 이용해 문제가 발생한 실행 상태를 기록하는 경로를 구현했습니다. 이후 디버거에서 원인을 확인할 수 있도록 덤프와 관련 정보를 남깁니다.

02

메모리 할당·해제 추적

전역 메모리 할당 추적과 진단 기록을 구현했습니다. 할당과 해제의 대응 관계를 관찰하고, 프로그램 종료 시 남은 기록을 확인할 수 있도록 연결했습니다.

03

실행 위치를 모으는 샘플링 프로토타입

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

DELIVERED WORK

구현 결과

  • Windows 예외·MiniDump 기반 크래시 기록
  • 메모리 할당 추적과 진단 출력
  • RIP sampling · Symbol resolution · CSV report

수업 프레임워크를 바탕으로 만든 개인 과제입니다. LiquidFun/Box2D에 연결한 샘플링 도구는 실행 위치 수집·심볼 해석 원리를 구현한 프로토타입입니다.

다음 프로젝트OpenGL Rendering