CodeView: Difference between revisions

Content deleted Content added
CE, improved refs
Use the page's current name.
 
(9 intermediate revisions by 6 users not shown)
Line 1:
{{Short description|Full-screen debugger for DOS by Microsoft}}
{{Use dmy dates|date=January 2020|cs1-dates=y}}
{{Infobox software
[[File:Dosbox 001.png|thumb|right|DOS's ''[[DEBUG (DOS command)|DEBUG]]'' command is line-oriented, whereas CodeView is full-screen oriented]]
| name = CodeView
'''CodeView''' is a standalone [[debugger]] created by [[David Norris (Microsoft)|David Norris]] at [[Microsoft]] in 1985 as part of its development toolset.<ref name="CV3x"/> 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.<ref name="CV87"/> It was one of the first debuggers on the [[DOS]] platform that was full-screen oriented, rather than line-oriented (as Microsoft's predecessors [[DEBUG (DOS command)|DEBUG]] and [[SYMDEB]] or [[Digital Research]]'s [[Symbolic Instruction Debugger|SID]]).
| logo =
| author = David Norris
| developer = [[Microsoft]]
| released = {{Start date and age|1985}}
| latest_release_version =
| latest_release_date =
| programming language =
| operating system = [[MS-DOS]]
| platform = [[x86]]
| genre = [[Debugger]]
| license =
| website =
}}
'''CodeView''' is a standalone [[debugger]] created by [[David Norris (Microsoft)|David Norris]] at [[Microsoft]] in 1985 as part of its development toolset.<ref name="CV3x"/> It originally shipped with Microsoft C 4.0 and later. It also shipped with [[Visual Basic (classic)|Visual Basic]] for [[MS-DOS]], [[Microsoft BASIC PDS]], and a number of other Microsoft language products.<ref name="CV87"/> It was one of the first debuggers onfor the [[MS-DOS]] platformto that wasbe full-screen oriented, rather than line-oriented (as Microsoft's predecessors [[DEBUG (DOS command)|DEBUG]] and [[SYMDEB]] or [[Digital Research]]'s [[Symbolic Instruction Debugger|SID]]).
 
==Overview==
When running, CodeView presents the user with several [[window (computing)|windows]] that can be tiled, moved, sized and otherwise manipulated via the keyboard or mouse, with CodeView 4.x providing a richer interface. Some of the windows include:
 
* Code window - the code window showed the currently debugged code in its [[source code]] context.
* Data window - a [[hex dump|hexadecimal dump]] of a user-specified memory area.
* Watch window - a contextual display of variables by name.
* Locals window - a contextual display of variables local to the current function.
* Command window - user commands (using the same or similar syntax as DEBUG and SYMDEB) could be entered here.
* Assembly window - the assembly (machine code) was displayed, allowing for single-stepping through functions.
* Register window - to visualize the [[80x86]] register contents, including segments, flags and the [[Floating-point unit|FPU]] (CodeView existed before [[MMX (instruction set)|MMX]] and other [[SIMD]] extensions).
* Output window - a window showing startup operations and debugging information relating to breakpoints,<ref name="CV87"/> hardware breaks (interrupt 0 and 3), etc.
 
===Features===
* 386 mode - 8086, 80286 and 80386 and later processors. 386 enhanced mode is activated by a menu option, allowing for 32-bit registers and disassembly.
* Monochrome monitor support - allows debugging on either a single color (CGA, EGA or VGA) monitor with page/memory swapping between the user application and the CodeView screen, or using a separate monochrome monitor. The monochrome monitor exists in memory address space 0xb0000, while the color monitor exists at 0xb8000 for text and 0xa0000 for graphics. Use of the monochrome monitor with its separate memory address space allows debugging graphics applications without affecting the display, as well as all text modes. Monochrome monitors are limited to 25 lines, whereas color monitors allow 25, 43 or 50 line mode, allowing for more information on the screen at the same time.
 
Creating symbolic debugging output, which allows 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, is enabled by the command line switch -Zi given to the compiler, and -CO given to the linker. Variants like -Zs and -Zd provide 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.
Line 37 ⟶ 51:
Another debugging product available from Microsoft in the mid-1980s was ''SYMDEB''.<ref name="SYMDEB"/>
 
It had over 30 commands, and was described by [[PC Magazine]] as a step up from DEBUG.<ref name="PCW_1986"/> Codeview in turn was described as "a fullscreen SYMDEB.".<ref name="PCMag_1986"/><ref name="MSC4"/>
 
==See also==
* [[Borland Turbo Debugger]]
* [[SoftICE]]
* [[Intelx86 Memorymemory Modelmodels]]
* [[Microsoft Visual Studio Debugger]]
* [[Program database]] - CodeView formats and types are still present in debugging information generated by modern C++ toolchains<ref>{{cite web |title=CodeView Type Records — LLVM 13 documentation |url=https://llvm.org/docs/PDB/CodeViewTypes.html#introduction |website=llvm.org |access-date=19 December 2021}}</ref>
* [[Program database]]
 
==References==
Line 57 ⟶ 71:
 
==Further reading==
* {{cite book |author-first=Charles |author-last=Petzold |author-link=Charles Petzold |date=1990 |title=Programming Windows: the Microsoft Guide to Writing Applications for Windows 3 |isbn=9781556152641 |url=https://archive.org/details/programmingwindo0000petz |url-access=registration}}
* {{cite book |publisher=[[Microsoft Corporation]] |date=1993 |title=CodeView Debugger User's Guide}}
 
{{Microsoft development tools}}
 
{{DEFAULTSORT:Codeview}}