소개
프로젝트 목적
DBG Desk는 사용자 PC의 GDB를 브라우저 화면에 연결하는 디버깅 도구입니다. 명령어, 레지스터, 메모리와 호출 스택을 한 화면에서 확인할 수 있도록 만들고 있습니다. 실행과 데이터 처리는 로컬 PC에서 이루어집니다. OllyDbg와 GDB의 공식 제품은 아닙니다.
현재 제공하는 기능
Python 로컬 서버와 GDB/MI 연결을 통해 실행 파일 열기, PID 연결, 명령어 단위 실행, 중단점 추가·삭제와 레지스터·메모리·스택 조회를 구현했습니다. 메모리 수정, 대화형 입력 터미널, PE 분석기, LLDB 및 WinDbg 연결은 아직 제공하지 않습니다. GitHub Windows 환경에서 MSYS2 UCRT64로 C 예제를 컴파일해 GDB의 실제 실행과 상태 조회를 검증했습니다. 개별 프로그램의 호환성은 별도로 확인해야 합니다.
기록·비교와 작업공간
정지할 때마다 최근 상태를 기록하고 두 시점의 레지스터·메모리 바이트 차이를 볼 수 있습니다. 선택한 기록은 Markdown 보고서로 저장합니다. 실행 파일 경로, 인수와 중단점은 작업공간 JSON으로 저장하며, 다시 열 때 실행 없이 설정만 준비합니다. 중단점은 현재 대상에 별도 적용합니다. Ctrl 또는 Cmd와 K를 함께 누르면 명령, 레지스터, 함수와 주소를 검색할 수 있습니다. 정지 기록 보기는 역실행 기능이 아닙니다.
실행 흐름과 조사 문맥
조건 비교식, 건너뛸 횟수, 한 번만 정지하는 임시 중단점을 설정하고 기존 중단점을 켜거나 끌 수 있습니다. 값 변경·읽기·읽기와 쓰기를 감시하는 주소 기반 데이터 중단점도 제공합니다. 지원 범위와 슬롯 수는 GDB와 대상 하드웨어에 따라 다릅니다. 스레드를 선택하거나 호출 스택의 프레임을 클릭하면 그 문맥의 레지스터와 지역 변수를 확인합니다. 최적화된 빌드나 디버그 심볼이 없는 파일에서는 변수를 읽지 못할 수 있습니다.
명령어 실행 외에 소스 줄 단위 안으로·넘기기 실행과 디스어셈블리의 선택 주소까지 실행을 제공합니다. 선택 주소 실행은 임시 중단점을 추가한 뒤 실제로 프로그램을 계속 실행합니다. 다른 중단점이나 예외에서 먼저 멈출 수 있습니다. 정지 기록과 보고서에는 선택한 스레드와 프레임을 표시하며 서로 다른 문맥을 비교하면 안내를 보여줍니다. 작업공간 v1은 기본 중단점만 저장합니다. 조건·횟수·임시·데이터·비활성 중단점이 있으면 설정을 잃지 않도록 저장을 중단하고 이유를 안내합니다.
메모리 검색과 값 해석
메모리 패널에서 현재 읽어 온 범위를 HEX 또는 UTF-8 문자열로 검색할 수 있습니다. HEX는 48 8B ?? FF처럼 바이트별 와일드카드를 지원합니다. 바이트를 클릭하면 해당 주소부터 읽은 값을 8·16·32·64비트 정수와 32·64비트 실수로 보여줍니다. Little endian과 Big endian을 선택할 수 있으며, 읽을 바이트가 부족한 자료형은 표시하지 않습니다. 검색과 해석은 브라우저에서 계산하고 대상 메모리를 수정하지 않습니다.
가이드
GDB 실행 환경, 중단점과 메모리 오류, Python과 JavaScript의 오류 읽기를 다룹니다. 글에 나온 명령과 예제는 대상 운영체제와 빌드 조건에 따라 결과가 달라질 수 있습니다. 참고한 공식 문서는 각 글 아래에 연결했습니다. 잘못된 내용이 있으면 글 주소와 수정 의견을 문의 이메일로 보내주세요.
운영 상태
현재는 로컬 테스트 단계이며 공개 배포와 광고 연동은 하지 않았습니다. 문의 주소는 psiwoo66@gmail.com입니다. 도메인은 아직 연결하지 않았습니다.