GN⁺: Seer: Linux용 GDB를 위한 GUI 프론트 엔드
(github.com/epasveer)-
Introduction
- Seer는 Linux에서 gdb를 위한 GUI 프론트엔드로, 사용하기 쉽고 시각적으로 만족스러운 인터페이스 제공을 목표로 함.
- 프로젝트는 활발히 진행 중이며, 버그나 원하는 기능은 이메일 또는 GitHub 프로젝트 페이지를 통해 보고 가능.
-
Installation
- Seer는 패키지 관리자나 소스에서 설치 가능.
-
Requirements
- Linux, C++17, gdb (mi 인터프리터 포함), CMake (3.1.0 이상), QT6 필요.
- QT6 "devel" 패키지 설치 필요.
- QT5는 더 이상 지원되지 않으며, 2.3 버전이 마지막으로 지원하는 소스 트리임.
-
Install from package
- Pamac (Manjaro)와 zypper (openSUSE Tumbleweed)에서 설치 가능.
-
NEWS
- Seer의 GitHub Wiki 페이지에서 최신 정보를 확인 가능.
- v1.17은 마지막 Qt5 릴리스이며, 다음 릴리스는 Qt6 기반의 v2.0이 될 예정.
-
GUI overview
-
Main View
- 소스/함수/타입/변수/라이브러리 목록 제공.
- 변수 및 레지스터 정보 표시.
- 코드 매니저에서 소스 파일 열람 및 검색 가능.
- 중단점, 감시점, 캐치포인트, 프린트포인트 관리 가능.
- 스택 프레임 및 스레드 정보 제공.
- Gdb의 역방향 디버깅 모드 지원.
-
Open Dialog
- 실행 파일을 열 때의 대화 상자 모습 설명.
-
Seer Console
- 실행 파일의 모든 텍스트 출력은 Seer 콘솔로 이동.
-
Assembly View
- 어셈블리 코드를 탭으로 표시 가능.
- 새로운 기능으로, 피드백 및 기능 제안 가능.
-
Memory Visualizer
- 메모리의 원시 내용을 시각화.
-
Array Visualizer
- 배열의 내용을 X-Y 플롯으로 시각화.
-
Struct Visualizer
- C/C++ 구조체나 클래스의 내용을 시각화.
-
Image Visualizer
- 이미지로 된 원시 메모리 내용을 시각화.
-
-
Starting Seer
- 명령줄에서 디버깅할 프로그램을 쉽게 시작할 수 있도록 설계됨.
- 다양한 실행 방법은 GitHub Wiki에서 확인 가능.
-
Support/Contact
- 버그나 기능 요청은 이메일 또는 GitHub 프로젝트 페이지를 통해 가능.
Hacker News 의견
-
Godot와 Linux에서 사용해 본 결과, UI가 복잡하지만 기능은 있음. 변수 값을 확인하려고 할 때 오류가 발생하거나 아무 일도 일어나지 않음. 변수 더블클릭 시 현재 값과 타임스탬프가 패널에 추가됨. Gede가 가장 간단하고 직관적인 UI를 제공하며, 기능은 적지만 버그 없이 잘 작동함
-
GDB는 텍스트 사용자 인터페이스(TUI)를 내장하고 있으며, 사용하기 쉬움. 마우스 상호작용도 지원함
-
여러 GDB 프론트엔드를 사용해 본 결과, TUI가 가장 좋음. 프로그램이 출력할 때 인터페이스가 깨질 수 있으므로 Ctrl + L로 다시 그릴 필요가 있음. 설정 파일에
layout src
와set confirm off
를 추가함 -
Windows에서 Linux에 연결하거나 WSL을 사용할 경우, WinDBG/VisualStudio를 사용하여 Linux 프로세스를 원격 디버깅할 수 있음
-
Qt UI for GDB와 웹 기반 UI인 gdbgui가 존재함. 디버그 도구의 발전을 보는 것은 항상 좋음
-
DDD는 처음 봤을 때 마법 같았음. 여전히 유지보수되고 있음
-
Emacs 사용자에게는 GUD가 훌륭한 GDB 통합 기능을 제공함
-
C 또는 Ada의 버그를 조사할 때 가끔 GDB를 사용하지만, 주 활동은 아님. 따라서 복잡한 디버깅 환경을 설정하는 데 시간을 투자하지 않음. Emacs와 간단한 지침 노트를 사용함
-
10년 전 Linux에서 C++ 프로그래밍할 때 Qt Creator를 사용했으며, 내장 디버거(GDB 프론트엔드)가 훌륭하게 작동했음. C++와 Qt를 위해 다른 것을 사용할 이유가 없음