코드뷰

CodeView
코드뷰
원저작자데이비드 노리스
개발자마이크로소프트
초기 릴리즈1985년; 37년 전 (1985년)
운영 체제MS-DOS
플랫폼x86
유형디버거

CodeView는 1985년 Microsoft의 David Norris가 개발 도구 [1]세트의 일부로 개발한 독립 실행형 디버거입니다.원래는 Microsoft C 4.0 이후에 탑재되어 있었습니다.또한 MS-DOS용 Visual Basic, Microsoft BASIC PDS 및 기타 Microsoft 언어 [2]제품도 함께 출고되었습니다.MS-DOS의 디버거 중 하나는 라인 지향(마이크로소프트의 이전 버전인 DEBUG 및 SYMDEB 또는 디지털 리서치의 SID)이 아닌 풀스크린 지향(full-screen) 방식이었다.

개요

실행 시 CodeView는 키보드 또는 마우스를 통해 타일링, 이동, 크기 조정 및 기타 조작이 가능한 여러 을 사용자에게 제공합니다.CodeView 4.x는 보다 풍부한 인터페이스를 제공합니다.일부 창은 다음과 같습니다.

  • 코드 창 – 코드 창에는 소스 코드 컨텍스트에서 현재 디버깅된 코드가 표시됩니다.
  • 데이터 창 – 사용자 지정 메모리 영역의 16진수 덤프.
  • Watch window – 변수 이름별 상황별 표시.
  • 로컬 창 – 현재 함수에 대한 로컬 변수 컨텍스트 표시.
  • 명령어 창 – 사용자 명령어(DEBUG 및 SYMDEB와 동일하거나 유사한 구문 사용)를 입력할 수 있습니다.
  • 조립 창 – 조립체(기계 코드)가 표시되었으며, 기능을 한 단계씩 이동할 수 있습니다.
  • Register 창 – 세그먼트, 플래그 및 FPU를 포함한 80x86 레지스터 내용을 시각화합니다(CodeView는 MMX 및 기타 SIMD 확장 이전에 존재).
  • 출력 창 – 시작 조작 및 중단점,[2] 하드웨어 파손(인터럽트 0 및 3) 등과 관련된 디버깅 정보를 보여주는 창입니다.

특징들

  • 386 모드 – 8086, 80286 및 80386 이후의 프로세서.386 확장 모드는 메뉴 옵션에 의해 활성화되어 32비트 레지스터 및 분해가 가능합니다.
  • 흑백 모니터 지원– 단색(CGA, EGA 또는 VGA) 모니터로 디버깅할 수 있습니다.사용자 어플리케이션과 CodeView 화면 간의 페이지/메모리 스왑을 사용하거나 별도의 흑백 모니터를 사용할 수 있습니다.흑백 모니터는 메모리 주소 공간 0xb0000에 존재하며 컬러 모니터는 텍스트의 경우 0xb8000, 그래픽스의 경우 0xa0000에 존재합니다.흑백 모니터와 메모리 주소 공간을 별도로 사용하면 디스플레이 및 모든 텍스트 모드에 영향을 주지 않고 그래픽 애플리케이션을 디버깅할 수 있습니다.흑백 모니터는 25 회선으로 제한되어 있습니다.컬러 모니터는 25, 43, 또는 50 회선 모드를 지원하므로 동시에 화면에 더 많은 정보를 표시할 수 있습니다.

메모리 위치를 프로그래머가 할당한 이름으로 볼 수 있는 심볼릭 디버깅 출력과 바이너리 실행 파일 내의 모든 컴퓨터 명령과 관련된 소스 코드 라인을 나타내는 프로그램 데이터베이스를 작성하는 것은 컴파일러에 부여되는 명령줄 스위치 -Zi와 링커에 부여되는 -CO에 의해 가능하게 된다.-Zs 및 -Zd와 같은 변형은 적은 정보를 제공하며, 1990년대 초반에는 메모리 및 하드 디스크 용량과 같은 제한된 기계 자원으로 인해 중요했던 작은 출력 파일을 제공합니다.당시 시스템의 메모리 용량은 8MB 이하가 많았습니다.

CodeView는 TINY(DOS 기반)를 사용하여 TINY, SMART, MEDIUM, LARGE 및 HUGE를 포함한 모든 프로그램 모델을 처리합니다.COM 파일)의 심볼 디버거 정보를 다른 모든 파일과 함께 별도의 파일에 저장합니다.실행 파일 내부에 직접 심볼 정보를 포함하는 EXE 형식입니다.이로 인해 종종 사이즈가 크게 증가하기 때문에 일부 개발자는 C(및 이후 C++) 소스 코드 내에서 #pragma 스위치를 사용하여 어플리케이션의 대부분이 심볼 출력을 갖지 않도록 하는 것이 바람직해졌습니다.대신 그 출력을 현재의 디버깅에 필요한 부분에만 한정합니다.

CodeView버전 3.x 및 4.x에서는 다양한 트랜스포트 레이어가 도입되어 이러한 형태의 심볼릭 디버깅에 대한 메모리 공간 제한이 일부 해소되었습니다.일반적으로 디버거는 디버깅되는 응용 프로그램과 함께 하위 640KB 메모리 공간에서 실행되므로 디버깅되는 응용 프로그램에서 사용할 수 있는 메모리 양이 크게 줄어듭니다.트랜스포트 레이어에서는 메인메모리에 stub만 존재할 수 있지만 디버거 코드의 대부분은 EMS 또는 XMS(1MB 장벽 이상 메모리 또는 DOS 프로그램에서 일반적으로 사용되는0 KB ~ 640 KB 주소 공간 외)에 있습니다.CodeView에는 CVPACK 명령줄 유틸리티도 포함되어 있어 CodeView에서 생성되는 정보의 크기를 줄이면서도 데이터에 대한 완전한 심볼릭 액세스를 유지할 수 있습니다.

Visual C++ 지원

Microsoft는 CodeView 기능을 단일 프로그래밍 환경(IDE)에 직접 통합한 Visual C++ 1.0을 출시했습니다.단, CodeView는 Visual C++의 16비트 버전에서도 사용할 수 있었습니다.QuickC 및 'Quick' 시리즈의 많은 개발 도구들도 이러한 단일 소스 IDE로의 전환을 지원했습니다. 이 IDE는 현대의 Visual Studio 개발자 환경의 전조가 되었으며, 다른 수많은 개발자 도구 세트의 모델도 마찬가지였습니다.

코딩과 디버깅 모두 프로그램이나 컨텍스트를 전환하지 않고 동일한 논리적 위치에서 처리할 수 있기 때문에 많은 개발자들에게는 이러한 통합이 소프트웨어를 개발하는 보다 자연스러운 방법으로 간주되었습니다(내부적으로는 편집, 컴파일 및 디버깅을 지원하기 위해 많은 개별 프로그램이 실행 중이었음에도 불구하고).그 결과, 대부분의 개발 도구 및/또는 플랫폼은 유사한 제품 또는 기능을 제공합니다.

오늘날 이 디버거는 Microsoft Visual Studio 제품군의 필수적인 일부로 간주되며, 그 진정한 뿌리는 CodeView와 버전 4.x에서 볼 수 있는 기능 강화에 있습니다.

심데브

1980년대 중반 마이크로소프트에서 사용할 수 있는 또 다른 디버깅 제품은 SYMDEB입니다.[3]

30개 이상의 명령어가 있으며 PC Magazine에서는 [4]DEBUG에서 한 단계 업그레이드된 명령어로 설명했습니다.Codeview는 "전체 화면 SYMDEB"[5][6]로 설명되었습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "CodeView 3.x". WinWorld.
  2. ^ a b Microsoft Macro Assembler 5.1 - Microsoft CodeView and Utilities. Microsoft Corporation. 1987. p. 157. Document No. 4108-40010-500-R03-1287.
  3. ^ Par, Jeff (2018-02-25). "A Short History of SYMDEB". PCjs Machines. Retrieved 2019-05-19.
  4. ^ "SYMDEB: A step up from Debug". PC World. 1986-10-14. p. 296.
  5. ^ "SYMDEB". PC Magazine. Vol. 5, no. 17. Ziff Davis, Inc. 1986-09-30. p. 38. ISSN 0888-8507.
  6. ^ "MS C 4.0 Documentation Added". OS2museum.com.
  7. ^ "CodeView Type Records — LLVM 13 documentation". llvm.org. Retrieved 2021-12-19.

추가 정보