코드뷰

코드뷰
원저자데이비드 노리스
개발자마이크로소프트
발표일1985년(41년 전)(1985)
운영 체제MS-DOS
플랫폼X86
종류디버거

코드뷰(CodeView)는 1985년 마이크로소프트의 개발 도구 모음의 일부로 데이비드 노리스가 제작한 독립형 디버거이다. 본래 마이크로소프트 C 4.0 이상 버전과 함께 제공되었다. 또한 비주얼 베이직 (MS-DOS용), 마이크로소프트 베이직 PDS 등 여러 마이크로소프트 언어 제품과 함께 제공되기도 했다. 이 제품은 마이크로소프트의 이전 도구였던 DEBUG 및 SYMDEB, 혹은 디지털 리서치의 SID와 같은 라인 단위 방식이 아닌, 전체 화면 지향 방식을 채택한 MS-DOS용 초기 디버거 중 하나였다.

개요

실행 시 코드뷰는 사용자의 키보드나 마우스를 통해 타일 배치, 이동, 크기 조절 등이 가능한 여러 창을 제공하며, 코드뷰 4.x 버전부터는 더 풍부한 인터페이스를 지원한다. 주요 창은 다음과 같다.

기능

메모리 위치를 프로그래머가 지정한 이름으로 확인할 수 있게 하는 상징적 디버깅 출력과, 바이너리 실행 파일의 모든 컴퓨터 명령어와 관련된 소스 코드 줄을 보여주는 프로그램 데이터베이스 생성은 컴파일러의 -Zi 스위치와 링커의 -CO 스위치를 통해 활성화된다. -Zs나 -Zd와 같은 변형은 더 적은 정보를 제공하며 출력 파일 크기를 줄여주는데, 이는 메모리와 하드 디스크 용량이 제한적이었던 1990년대 초반에는 중요한 기능이었다. 당시 대다수 시스템의 메모리는 8MB 이하였다.

코드뷰는 TINY, SMALL, COMPACT, MEDIUM, LARGE, HUGE 등 모든 프로그램 모델을 처리한다. TINY(DOS 기반 .COM 파일) 모델은 상징적 디버거 정보를 별도의 파일에 저장하는 반면, 다른 .EXE 형식은 실행 파일 내부에 상징적 정보를 포함한다. 이로 인해 파일 크기가 눈에 띄게 증가하는 경우가 많았고, 일부 개발자들은 C(이후 C++) 소스 코드 내에 #pragma 스위치를 사용하여 애플리케이션의 상당 부분이 상징적 출력을 포함하지 않도록 제한하고, 디버깅에 필요한 부분만 출력하도록 설정하기도 했다.

코드뷰 3.x 및 4.x 버전은 다양한 전송 계층을 도입하여 이러한 상징적 디버깅 방식의 메모리 공간 제한을 일부 제거했다. 일반적으로 디버거는 디버깅 중인 애플리케이션과 함께 하위 640KB 메모리 공간에서 실행되므로, 애플리케이션이 사용할 수 있는 메모리 양이 크게 줄어든다. 전송 계층을 사용하면 메인 메모리에는 스텁(stub)만 존재하게 되고, 디버거 코드의 대부분은 EMS나 XMS(1MB 장벽 너머의 메모리, 또는 DOS 프로그램이 일반적으로 사용하는 0KB - 640KB 주소 공간 외부)에 상주하게 된다. 코드뷰는 또한 CVPACK 명령줄 유틸리티와 함께 제공되어, 데이터에 대한 완전한 상징적 접근을 유지하면서도 내부적으로 코드뷰가 생성한 정보의 크기를 줄일 수 있었다.

마이크로소프트 비주얼 C++ 지원

마이크로소프트는 마이크로소프트 비주얼 C++ 1.0을 출시하면서 코드뷰 기능을 통합 개발 환경이라는 단일 프로그래밍 환경에 직접 통합했다. 물론 코드뷰는 16비트 버전의 비주얼 C++에서도 계속 사용할 수 있었다. 퀵베이직 및 'Quick' 시리즈의 다른 여러 개발 도구들도 이러한 단일 소스 IDE로의 전환을 지원했으며, 이는 현대적인 비주얼 스튜디오 개발 환경의 선구자이자 수많은 다른 개발 도구 세트의 모델이 되었다.

이러한 통합은 코딩과 디버깅을 프로그램이나 문맥 전환 없이 동일한 논리적 위치에서 처리할 수 있었기 때문에 많은 개발자에게 더 자연스러운 소프트웨어 개발 방식으로 받아들여졌다(내부적으로는 편집, 컴파일, 디버깅을 지원하기 위해 여러 프로그램이 별도로 실행되고 있었음에도 불구하고). 그 결과, 오늘날 대부분의 개발 도구 및 플랫폼은 유사한 제품이나 기능을 제공하고 있다.

오늘날 이 디버거는 마이크로소프트 비주얼 스튜디오 제품군에서 통합된 필수 요소로 간주되며, 그 뿌리는 코드뷰와 특히 4.x 버전에서 보였던 개선 사항들에 두고 있다.

Symdeb

1980년대 중반 마이크로소프트에서 제공하던 또 다른 디버깅 제품으로는 SYMDEB이 있었다.

이 도구는 30개 이상의 명령어를 가지고 있었으며, PC 월드에서는 DEBUG보다 한 단계 진보한 도구로 묘사되었다. 반면 코드뷰는 "전체 화면용 SYMDEB"으로 묘사되기도 했다.

같이 보기

각주

  1. ↑ “CodeView 3.x”. 《WinWorld》.
  2. 1 2 《Microsoft Macro Assembler 5.1 - Microsoft CodeView and Utilities》. 마이크로소프트. 1987. 157쪽. Document No. 4108-40010-500-R03-1287.
  3. ↑ Par, Jeff (2018년 2월 25일). “A Short History of SYMDEB”. 《PCjs Machines》. 2019년 5월 19일에 확인함.
  4. ↑ “SYMDEB: A step up from Debug”. 《PC 월드》. 1986년 10월 14일. 296쪽.
  5. ↑ “SYMDEB”. 《PC 매거진》. 5권 17호 (지프 데이비스). 1986년 9월 30일. 38쪽. ISSN 0888-8507.
  6. ↑ “MS C 4.0 Documentation Added”. 《OS2museum.com》.
  7. ↑ “CodeView Type Records — LLVM 13 documentation”. 《llvm.org》. 2021년 12월 19일에 확인함.

외부 링크