GitHub Trending기타오늘의 주요

EpicGames/raddebugger

에픽게임즈, 자체 제작 디버거 RAD Debugger 오픈소스 공개

원제 EpicGames/raddebugger

스타 8,198당일 +279C
Key Point

에픽게임즈가 수년간 자사 게임 개발에 사용해온 대형 프로젝트 최적화 디버거와 링커를 완전 오픈소스로 공개함으로써, 대규모 C/C++ 프로젝트 개발자들이 성능 최적화된 디버깅 도구를 활용할 수 있게 되었습니다.

핵심 요약

  • 에픽게임즈가 RAD Debugger를 공개했으며, 현재 Windows x64 로컬 디버깅만 지원하고 향후 Linux와 DWARF 지원을 계획 중인 알파 단계 상태다.
  • 디버거는 네이티브 유저모드 멀티프로세스 그래픽 기반으로 동작하며, PDB 포맷의 디버그 정보를 파싱해 사용한다.
  • RAD Debug Info(RDI) 포맷은 PDB와 DWARF 같은 기존 포맷을 변환해 디버거가 파싱하는 중간 포맷으로, 온디맨드 변환 및 텍스트 덤프 생성을 위한 radbin 유틸리티를 제공한다.
  • RAD Linker는 x64 PE/COFF 바이너리 생성 최적화 링커로, 수십 기가바이트 규모의 디버그 정보를 가진 대형 프로젝트에서 링크 시간을 50% 단축시킨다.
  • 링커는 기본값으로 모든 코어를 활용해 스레드를 생성하며, /rad_workers로 제한 가능하고, 대용량 메모리 페이지를 활성화하면 링크 시간을 추가로 25% 단축할 수 있다.
  • Windows와 Linux 개발 환경 모두에서 빌드 가능하며, Windows는 MSVC/Clang 컴파일러, Linux는 GCC/Clang과 여러 그래픽 라이브러리 의존성이 필요하다.
  • 프로젝트 로드맵의 1단계는 x64 Windows 로컬 디버깅의 안정성을 확보하고, 2단계는 동일한 경험을 Linux로 포팅하며, 그 이후 원격 디버깅 등을 추진할 예정이다.
  • 코드베이스는 레이어 기반 아키텍처로 구조화되어 있으며, demon(프로세스 제어), ctrl(디버거 제어), dbg_engine(핵심 로직), eval(식 평가), disasm(역어셈블) 등 40개 이상의 계층으로 구성되어 있다.
  • lib_rdi, lib_rdi_make, lib_raddbg_markup 등 일부 라이브러리는 base 계층에 의존하지 않아 독립적으로 다른 프로젝트에 재배치 가능하도록 설계됐다.
  • 현재 알파 단계이므로 사용자들의 이슈 제출과 덤프 파일, 재현 방법 등의 정보 제공을 요청하고 있다.
AI 요약 안내

AI가 한국어로 정리한 내용입니다. 정확한 정보는 원문을 확인해 주세요.

요약 원칙 ↗