*** Welcome to piglix ***

CodeView


CodeView was a standalone debugger created by David Norris at Microsoft in 1985 as part of its development toolset. It originally shipped with Microsoft C 4.0 and later. It also shipped with Visual Basic for MS-DOS, Microsoft Basic PDS, and a number of other Microsoft language products. It was one of the first debuggers on the MS-DOS platform that was full-screen oriented, rather than line oriented (like its predecessors DEBUG.COM and symdeb).

When running, CodeView would present the user with several windows that could be tiled, moved, sized and otherwise manipulated via the keyboard or mouse, with CodeView 4.x providing a richer interface. Some of the windows included:

Creating symbolic debugging output, which allowed memory locations to be viewed by their programmer-assigned name, along with a program database showing the source code line related to every computer instruction in the binary executable, was provided for by the command line switch -Zi given to the compiler, and -CO given to the linker. Variants like -Zs and -Zd provided lesser information, and smaller output files which, during the early 1990s, were important due to limited machine resources, such as memory and hard disk capacity. Many systems in those days had 8MB of memory or less.

CodeView supported all program models, including TINY, SMALL, COMPACT, MEDIUM, LARGE and HUGE, with TINY (DOS-based .COM files) having their symbolic debugger information stored in a separate file, with all of the other .EXE formats containing the symbolic information directly inside the executable. This often introduced a notable size increase, and it therefore became desirable for some developers to use #pragma switches within their C (and later C++) source code to prevent the majority of the application from having symbolic output, and instead limiting that output to only those portions which required it for current debugging.

CodeView version 3.x and 4.x introduced various transport layers, which removed some of the memory space limitations to this form of symbolic debugging. Typically the debugger would run in the lower 640KB memory space alongside the application being debugged, which greatly decreased the amount of memory available to the application being debugged. The transport layer allowed only a stub to exist in main memory, while the bulk of the debugger code resided in EMS or XMS (memory above the 1MB barrier, or outside of the normal 0KB - 640KB address space typically used by DOS programs). CodeView also came with a CVPACK command-line utility, which could reduce the size of the CodeView-generated information internally, while still retaining full symbolic access to data.


...
Wikipedia

...