나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2025-02-03 16:41:40

디버거


1. 개요2. 구조
2.1. 기능
3. 종류
3.1. 백엔드와 프런트엔드
4. 목록
4.1. 백엔드4.2. 프런트엔드
5. 기타

1. 개요

소프트웨어 개발자가 임의의 소프트웨어에서 버그를 쉽게 찾도록 디버깅을 도와주는 개발자 도구.

2. 구조

2.1. 기능

3. 종류

3.1. 백엔드와 프런트엔드

디버거라는 것이 언어마다 구현 방법이 천차만별이지만, 안 그래도 복잡한 디버깅 효율을 최대한으로 끌어올리려면 GUI로 현재 중단점, 컨텍스트 트리, 호출 스택, 메모리 뷰 등 다양한 정보를 IDE에 시각적으로 통합(integration)해 보여 줄 필요가 있다. 이렇게 되면 [math(N)]개의 IDE마다 [math(M)]개의 언어별로 일일히 디버깅 지원을 추가해야 하는데, 총 [math(N\times M)]개의 디버깅 지원을 구현한다는 것은 개발자의 관점에서 결코 좋은 설계가 아니다.

따라서 보통의 경우 컴파일러언어 서버의 백엔드와 프런트엔드를 분리하듯이, 개별 언어별로 추상적인 디버거 백엔드를 한 번만 만들고 개별 IDE 제조사들은 Debug Adapter Protocol 등으로 이 둘을 통합해 재사용성을 높이는 방식의 설계를 사용한다. 실제로 대부분의 IDE가 자체 디버거를 내장한 것 같아도 백엔드로 gdb 등이나 다른 외부 디버거를 라이브러리 형태로 링크하고 있는 경우가 많다.

4. 목록

4.1. 백엔드

4.2. 프런트엔드

5. 기타