
AlwaysHex는 Visual Studio에서 디버깅할 때 변수 값을 10진수와 16진수로 함께 표시하는 확장이다. 기본 디버거에서는 Hexadecimal Display 설정에 따라 한 진법만 보여줘 표시 방식을 오가야 하지만, AlwaysHex를 설치하면 두 값을 한 화면에서 확인할 수 있다.
예를 들어 int a = 100은 100 (0x00000064), int neg = -1은 -1 (0xffffffff), int16_t i = 42는 42 (0x002a)로 나타난다. char ch = 'a'는 97 (0x61) 'a'로 표시된다. 구조체 POINT pt의 {x=1655 y=222}는 {x=1655 (0x00000677) y=222 (0x000000de)}가 된다. 선택한 진법이 항상 먼저 표시되므로, 16진수 표시를 켜면 100은 0x00000064 (100)으로 나온다.
지원 언어는 네이티브 코드의 C·C++와 C#이다. C++/CLI는 Visual Studio가 원래 표시하는 방식 그대로 둔다. 데이터 팁(값에 마우스를 올렸을 때 표시되는 정보), Watch, Locals, Autos, 구조체·클래스 멤버, 배열 요소, Call Stack 창에서 사용할 수 있다.
지원 대상으로 안내된 Visual Studio는 64비트 2022와 2026이다. 전체 릴리스 테스트는 Visual Studio 2022 17.14 Community와 Visual Studio 2026 18.11 Professional에서 진행됐다. Professional 2022에서도 사용했다. 설치 프로그램은 Visual Studio 2022 17.0 이상 버전과 다른 2026 버전, Enterprise 에디션도 설치 대상으로 받아들이지만, 이 조합들은 테스트하지 않았다.
설치와 사용
설정은 따로 필요하지 않다. AlwaysHex를 설치한 뒤 평소처럼 디버깅하면 된다. 설치 과정은 다음과 같다.
- Releases 페이지에서
AlwaysHex.vsix를 내려받는다. - Visual Studio를 종료하고 파일을 두 번 클릭한다. 설치 프로그램에서 확장을 설치할 수 있는 Visual Studio 버전을 확인한다.
- Visual Studio를 다시 실행해 디버깅한다.
확장을 끄려면 Extensions → Manage Extensions에서 AlwaysHex를 비활성화한 뒤 Visual Studio를 다시 시작한다. 우클릭 메뉴의 Copy Value는 100 (0x00000064)처럼 두 값을 함께 복사한다. 첫 번째 값만 복사하려면 값을 두 번 클릭한 다음 Ctrl+C를 누른다.
Visual Studio 2026 업데이트 뒤 확장이 활성화되지 않는 경우도 있다. 이미 설치된 AlwaysHex를 업데이트한 뒤 Visual Studio 2026이 이전 확장 캐시를 계속 사용해 확장 없이 시작할 때는 Visual Studio를 종료하고 VS 2026용 Developer Command Prompt를 연 다음 devenv /updateconfiguration을 한 번 실행한다.
적용 범위와 제약
C#의 시각화 도구 창(IEnumerable, DataTable 등)은 내용을 한 진법으로만 표시한다. C# 원격 디버깅(Remote Tools)에서도 AlwaysHex를 사용하지 않을 때와 마찬가지로 C# 값이 한 진법으로만 나온다.
확장은 Visual Studio 디버그 엔진인 Concord에 연결되는 두 구성 요소로 이뤄진다. C/C++ 구성 요소는 기본 C/C++ 식 평가기보다 앞에서 요청을 받아, 선택한 진법과 다른 진법으로 각각 값을 요청한 뒤 결과를 합쳐 Visual Studio에 돌려준다. 예를 들어 100과 0x00000064를 100 (0x00000064)로 합친다. 제작자는 두 요청이 부작용 없이 처리된다고 설명한다.
C# 구성 요소는 C# 값 서식 지정기가 정수 값을 문자열로 만든 뒤 다른 진법의 값을 덧붙인다. 나머지 동작은 바꾸지 않으므로 시각화 도구와 Object IDs 같은 C# 디버거 기능은 계속 작동하며, 속성 접근자도 두 번 실행하지 않는다고 설명한다.
다만 C/C++ 요청을 기본 식 평가기로 전달하는 과정은 Microsoft가 문서화하지 않은 Visual Studio 내부 요청 전달 방식에 의존한다. 테스트한 버전은 Visual Studio 2022 17.14와 Visual Studio 2026 18.11뿐이다. 다른 버전에서 동작이 달라지거나 이후 Visual Studio 버전에서 AlwaysHex를 업데이트해야 할 수 있다. 요청 전달 방식이 바뀌면 C/C++ 값이 한 진법으로만 표시되거나, 다르게 보이거나, 평가 오류가 날 수 있다. AlwaysHex에는 반복해서 되돌아오는 요청을 오류로 끝내 무한 반복을 막는 보호 장치가 있지만, Visual Studio나 요청을 넘겨받은 다른 디버거 구성 요소가 항상 응답한다고 보장하지는 않는다.
구현·테스트 자료
구현 설명은 How it works에 있다. C/C++ 평가 구성 요소의 상세 설명과 디버거 용어, 요청 전달 방식은 AlwaysHex/AlwaysHexEvaluator.cs 파일 앞부분에, C# 구현은 AlwaysHex/AlwaysHexClrFormatter.cs에 담겼다. 소스에서 빌드하는 방법은 BUILDING.md, 실제 Visual Studio에서 확장을 확인하는 테스트 프로그램과 스크립트 및 전체 릴리스 테스트 실행 방법은 RELEASE_TESTS.md에서 확인할 수 있다.
프로젝트 설명에 따르면 확장은 Anthropic의 AI 모델 Claude Opus 5.5가 Claude Code에서 작성했다. 디버거에 연결하는 아이디어와 소스 코드, 빌드·패키징 설정, 테스트 프로그램·스크립트, README 대부분도 Claude가 만들었다. OpenAI Codex (Astra)는 Visual Studio 충돌·멈춤·잘못된 변수 표시 가능성을 검토했으며 결함을 찾지 못했다고 한다. Jochen Baier는 작업을 감독하고 기능·이름·라이선스·지원 Visual Studio 버전을 결정했으며 실제 프로젝트를 포함해 직접 테스트했다고 밝혔다.
AlwaysHex의 라이선스는 MIT이며, 저작권 표기는 © 2026 Jochen Baier다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요