227:
available to the application being debugged. The transport layer allows only a stub to exist in main memory, while the bulk of the debugger code resides in EMS or XMS (memory above the 1 MB barrier, or outside of the normal 0 KB - 640 KB address space typically used by DOS programs). CodeView also came with a CVPACK command-line utility, which can reduce the size of the CodeView-generated information internally, while still retaining full symbolic access to data.
1412:
214:
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.
223:
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.
218:
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,
226:
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 runs in the lower 640KB memory space alongside the application being debugged, which greatly decreases the amount of memory
251:
This integration was seen by many developers as a more natural way of developing software because both coding and debugging could be handled without switching programs or context, and all from the same logical location (even though internally many separate programs were running to support editing,
222:
CodeView handles 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.
213:
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
219:
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.
247:
and a number of other development tools in the 'Quick' series also supported this move to a single-source IDE, what became the precursor to the modern Visual Studio developer environment, as well as the model for countless other developer toolsets.
127:, and a number of other Microsoft language products. It was one of the first debuggers for MS-DOS to be full-screen oriented, rather than line-oriented (as Microsoft's predecessors
548:
151:
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:
541:
210:
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.
1201:
200:
Output window – a window showing startup operations and debugging information relating to breakpoints, hardware breaks (interrupt 0 and 3), etc.
1444:
948:
943:
1439:
1415:
595:
534:
673:
240:
505:
1237:
1092:
844:
302:
1232:
1107:
585:
849:
829:
600:
1227:
797:
785:
683:
817:
1196:
1140:
115:
in 1985 as part of its development toolset. It originally shipped with
Microsoft C 4.0 and later. It also shipped with
1288:
1222:
1112:
1097:
864:
252:
compiling and debugging). As a result, most development tools and/or platforms offer similar products or features.
1145:
1000:
1326:
1268:
1135:
1102:
854:
641:
349:
259:
family of products, and owes its true roots to CodeView, and the enhancements seen in version 4.x specifically.
1152:
913:
621:
1394:
572:
256:
178:
Assembly window – the assembly (machine code) was displayed, allowing for single-stepping through functions.
175:
Command window – user commands (using the same or similar syntax as DEBUG and SYMDEB) could be entered here.
802:
1377:
1263:
908:
775:
730:
310:- CodeView formats and types are still present in debugging information generated by modern C++ toolchains
287:
116:
1321:
978:
938:
762:
715:
695:
519:
355:
239:
1.0 with CodeView functionality integrated directly into a single programming environment, known as the
190:
1178:
1157:
1048:
1005:
1293:
700:
688:
186:
128:
124:
91:
1434:
1191:
1186:
1130:
918:
710:
636:
580:
148:
79:
1382:
1087:
1063:
1010:
780:
678:
501:
425:
297:
1258:
1075:
651:
461:
421:
307:
136:
67:
443:
1399:
993:
767:
705:
616:
489:
1362:
928:
874:
494:
1428:
1253:
1122:
1058:
983:
859:
590:
1352:
1043:
1038:
869:
720:
243:(IDE) -- though CodeView was still available in the 16-bit versions of Visual C++.
236:
278:
as a step up from DEBUG. Codeview in turn was described as "a fullscreen SYMDEB".
822:
394:
1053:
973:
416:
275:
172:
Locals window – a contextual display of variables local to the current function.
156:
923:
898:
886:
881:
656:
526:
496:
Programming
Windows: the Microsoft Guide to Writing Applications for Windows 3
37:
27:
429:
328:
1357:
1336:
1082:
812:
112:
42:
807:
255:
Today, the debugger is considered an integrated and essential part of the
903:
790:
631:
399:
163:
108:
96:
267:
Another debugging product available from
Microsoft in the mid-1980s was
155:
Code window – the code window showed the currently debugged code in its
1316:
1070:
1033:
988:
933:
891:
740:
735:
646:
370:
292:
1331:
668:
661:
244:
132:
120:
72:
1372:
1367:
1015:
839:
725:
626:
182:
1206:
1025:
834:
351:
Microsoft Macro
Assembler 5.1 - Microsoft CodeView and Utilities
194:
530:
1387:
84:
358:. 1987. p. 157. Document No. 4108-40010-500-R03-1287.
169:
Watch window – a contextual display of variables by name.
147:
When running, CodeView presents the user with several
185:
register contents, including segments, flags and the
1345:
1302:
1281:
1246:
1215:
1177:
1170:
1121:
1024:
966:
957:
755:
609:
571:
562:
90:
78:
66:
48:
36:
26:
493:
462:"CodeView Type Records — LLVM 13 documentation"
274:It had over 30 commands, and was described by
542:
8:
21:
1174:
963:
568:
549:
535:
527:
20:
16:Full-screen debugger for DOS by Microsoft
1202:Business Intelligence Development Studio
320:
344:
342:
7:
181:Register window – to visualize the
241:Integrated Development Environment
14:
1411:
1410:
303:Microsoft Visual Studio Debugger
166:of a user-specified memory area.
1294:Team Foundation Version Control
516:CodeView Debugger User's Guide
444:"MS C 4.0 Documentation Added"
395:"SYMDEB: A step up from Debug"
1:
1445:Programming tools for Windows
420:. Vol. 5, no. 17.
1440:Microsoft development tools
557:Microsoft development tools
371:"A Short History of SYMDEB"
111:created by David Norris at
54:; 39 years ago
1461:
403:. 1986-10-14. p. 296.
1408:
1269:Extensible Storage Engine
674:Robotics Developer Studio
189:(CodeView existed before
1093:Communication Foundation
424:1986-09-30. p. 38.
369:Par, Jeff (2018-02-25).
1395:Windows Package Manager
1108:Presentation Foundation
257:Microsoft Visual Studio
1378:Web Platform Installer
1264:Access Database Engine
731:Native Image Generator
596:Tools for Applications
288:Borland Turbo Debugger
520:Microsoft Corporation
356:Microsoft Corporation
1006:Xbox Development Kit
591:Team System Profiler
1113:Workflow Foundation
1098:Identity Foundation
684:SharePoint Designer
235:Microsoft released
125:Microsoft BASIC PDS
23:
711:Windows App Studio
231:Visual C++ support
28:Original author(s)
1422:
1421:
1383:Windows Installer
1289:Visual SourceSafe
1277:
1276:
1197:Management Studio
1166:
1165:
1011:Windows Installer
751:
750:
298:x86 memory models
102:
101:
1452:
1414:
1413:
1259:Microsoft Access
1175:
1076:Entity Framework
964:
601:Tools for Office
569:
551:
544:
537:
528:
523:
511:
499:
490:Petzold, Charles
476:
475:
473:
472:
458:
452:
451:
440:
434:
433:
422:Ziff Davis, Inc.
411:
405:
404:
391:
385:
384:
382:
381:
366:
360:
359:
346:
337:
336:
325:
308:Program database
164:hexadecimal dump
162:Data window – a
137:Digital Research
107:is a standalone
68:Operating system
62:
60:
55:
24:
1460:
1459:
1455:
1454:
1453:
1451:
1450:
1449:
1425:
1424:
1423:
1418:
1404:
1400:Microsoft Store
1341:
1327:Script Debugger
1304:
1298:
1273:
1242:
1211:
1162:
1117:
1020:
994:Managed DirectX
959:
953:
747:
706:Windows App SDK
642:Macro Assembler
605:
564:
558:
555:
514:
508:
488:
485:
483:Further reading
480:
479:
470:
468:
460:
459:
455:
442:
441:
437:
413:
412:
408:
393:
392:
388:
379:
377:
368:
367:
363:
348:
347:
340:
327:
326:
322:
317:
284:
265:
233:
207:
145:
58:
56:
53:
49:Initial release
17:
12:
11:
5:
1458:
1456:
1448:
1447:
1442:
1437:
1427:
1426:
1420:
1419:
1409:
1406:
1405:
1403:
1402:
1397:
1392:
1391:
1390:
1380:
1375:
1370:
1365:
1360:
1355:
1349:
1347:
1343:
1342:
1340:
1339:
1334:
1329:
1324:
1319:
1314:
1308:
1306:
1300:
1299:
1297:
1296:
1291:
1285:
1283:
1282:Source control
1279:
1278:
1275:
1274:
1272:
1271:
1266:
1261:
1256:
1250:
1248:
1244:
1243:
1241:
1240:
1235:
1230:
1225:
1219:
1217:
1213:
1212:
1210:
1209:
1204:
1199:
1194:
1189:
1183:
1181:
1172:
1168:
1167:
1164:
1163:
1161:
1160:
1155:
1150:
1149:
1148:
1143:
1133:
1127:
1125:
1123:Device drivers
1119:
1118:
1116:
1115:
1110:
1105:
1100:
1095:
1090:
1085:
1080:
1079:
1078:
1068:
1067:
1066:
1061:
1056:
1051:
1046:
1041:
1030:
1028:
1022:
1021:
1019:
1018:
1013:
1008:
1003:
998:
997:
996:
986:
981:
976:
970:
968:
961:
955:
954:
952:
951:
946:
941:
936:
931:
929:Project Verona
926:
921:
916:
911:
906:
901:
896:
895:
894:
889:
879:
878:
877:
872:
862:
857:
852:
847:
842:
837:
832:
827:
826:
825:
820:
815:
810:
800:
795:
794:
793:
788:
783:
778:
770:
765:
759:
757:
753:
752:
749:
748:
746:
745:
744:
743:
738:
733:
728:
723:
713:
708:
703:
698:
693:
692:
691:
681:
676:
671:
666:
665:
664:
654:
649:
644:
639:
634:
629:
624:
622:Expression Web
619:
613:
611:
607:
606:
604:
603:
598:
593:
588:
583:
577:
575:
566:
560:
559:
556:
554:
553:
546:
539:
531:
525:
524:
512:
506:
484:
481:
478:
477:
453:
435:
406:
386:
361:
338:
329:"CodeView 3.x"
319:
318:
316:
313:
312:
311:
305:
300:
295:
290:
283:
280:
264:
261:
232:
229:
216:
215:
211:
206:
203:
202:
201:
198:
179:
176:
173:
170:
167:
160:
144:
141:
100:
99:
94:
88:
87:
82:
76:
75:
70:
64:
63:
50:
46:
45:
40:
34:
33:
30:
15:
13:
10:
9:
6:
4:
3:
2:
1457:
1446:
1443:
1441:
1438:
1436:
1433:
1432:
1430:
1417:
1407:
1401:
1398:
1396:
1393:
1389:
1386:
1385:
1384:
1381:
1379:
1376:
1374:
1371:
1369:
1366:
1364:
1361:
1359:
1356:
1354:
1351:
1350:
1348:
1344:
1338:
1335:
1333:
1330:
1328:
1325:
1323:
1320:
1318:
1315:
1313:
1310:
1309:
1307:
1301:
1295:
1292:
1290:
1287:
1286:
1284:
1280:
1270:
1267:
1265:
1262:
1260:
1257:
1255:
1254:Visual FoxPro
1252:
1251:
1249:
1245:
1239:
1236:
1234:
1231:
1229:
1226:
1224:
1221:
1220:
1218:
1214:
1208:
1205:
1203:
1200:
1198:
1195:
1193:
1190:
1188:
1185:
1184:
1182:
1180:
1176:
1173:
1169:
1159:
1156:
1154:
1151:
1147:
1144:
1142:
1139:
1138:
1137:
1134:
1132:
1129:
1128:
1126:
1124:
1120:
1114:
1111:
1109:
1106:
1104:
1101:
1099:
1096:
1094:
1091:
1089:
1086:
1084:
1081:
1077:
1074:
1073:
1072:
1069:
1065:
1062:
1060:
1057:
1055:
1052:
1050:
1047:
1045:
1042:
1040:
1037:
1036:
1035:
1032:
1031:
1029:
1027:
1023:
1017:
1014:
1012:
1009:
1007:
1004:
1002:
999:
995:
992:
991:
990:
987:
985:
982:
980:
977:
975:
972:
971:
969:
965:
962:
956:
950:
947:
945:
942:
940:
937:
935:
932:
930:
927:
925:
922:
920:
917:
915:
912:
910:
907:
905:
902:
900:
897:
893:
890:
888:
885:
884:
883:
880:
876:
873:
871:
868:
867:
866:
863:
861:
860:Visual FoxPro
858:
856:
853:
851:
848:
846:
843:
841:
838:
836:
833:
831:
828:
824:
821:
819:
816:
814:
811:
809:
806:
805:
804:
801:
799:
796:
792:
789:
787:
784:
782:
779:
777:
774:
773:
772:Visual Basic
771:
769:
766:
764:
761:
760:
758:
754:
742:
739:
737:
734:
732:
729:
727:
724:
722:
719:
718:
717:
714:
712:
709:
707:
704:
702:
699:
697:
694:
690:
687:
686:
685:
682:
680:
677:
675:
672:
670:
667:
663:
660:
659:
658:
655:
653:
650:
648:
645:
643:
640:
638:
635:
633:
630:
628:
625:
623:
620:
618:
615:
614:
612:
608:
602:
599:
597:
594:
592:
589:
587:
584:
582:
579:
578:
576:
574:
573:Visual Studio
570:
567:
561:
552:
547:
545:
540:
538:
533:
532:
529:
521:
517:
513:
509:
507:9781556152641
503:
498:
497:
491:
487:
486:
482:
467:
463:
457:
454:
449:
448:OS2museum.com
445:
439:
436:
431:
427:
423:
419:
418:
410:
407:
402:
401:
396:
390:
387:
376:
375:PCjs Machines
372:
365:
362:
357:
353:
352:
345:
343:
339:
334:
330:
324:
321:
314:
309:
306:
304:
301:
299:
296:
294:
291:
289:
286:
285:
281:
279:
277:
272:
270:
262:
260:
258:
253:
249:
246:
242:
238:
230:
228:
224:
220:
212:
209:
208:
204:
199:
196:
192:
188:
184:
180:
177:
174:
171:
168:
165:
161:
158:
154:
153:
152:
150:
142:
140:
138:
134:
130:
126:
122:
118:
114:
110:
106:
98:
95:
93:
89:
86:
83:
81:
77:
74:
71:
69:
65:
51:
47:
44:
41:
39:
35:
31:
29:
25:
19:
1353:Active Setup
1311:
1238:Notification
1216:SQL services
1049:Dynamic Data
721:CLR Profiler
565:environments
515:
495:
469:. Retrieved
465:
456:
447:
438:
415:
409:
398:
389:
378:. Retrieved
374:
364:
350:
332:
323:
273:
268:
266:
254:
250:
234:
225:
221:
217:
197:extensions).
146:
117:Visual Basic
104:
103:
38:Developer(s)
32:David Norris
18:
1303:Testing and
1233:Integration
1153:Windows HLK
979:Silverlight
974:Windows API
939:Small Basic
818:Managed C++
763:Dynamics AX
716:Windows SDK
696:Small Basic
563:Development
417:PC Magazine
276:PC Magazine
157:source code
1429:Categories
1322:Playwright
1179:SQL Server
960:frameworks
924:PowerShell
899:IronPython
887:TypeScript
882:JavaScript
803:Visual C++
657:QuickBASIC
471:2021-12-19
414:"SYMDEB".
380:2019-05-19
315:References
237:Visual C++
193:and other
1435:Debuggers
1358:ClickOnce
1337:xUnit.net
1305:debugging
1228:Reporting
1088:CardSpace
1064:Web Forms
845:Dexterity
823:C++/WinRT
756:Languages
701:WebMatrix
689:FrontPage
430:0888-8507
139:'s SID).
113:Microsoft
43:Microsoft
1416:Category
1346:Delivery
1312:CodeView
1223:Analysis
1171:Database
958:APIs and
919:Power Fx
904:IronRuby
791:VBScript
637:MACRO-80
632:GW-BASIC
492:(1990).
466:llvm.org
400:PC World
333:WinWorld
282:See also
205:Features
159:context.
143:Overview
109:debugger
105:CodeView
97:Debugger
80:Platform
22:CodeView
1317:OneFuzz
1192:Compact
1187:Express
1071:ADO.NET
1034:ASP.NET
989:DirectX
892:JScript
813:C++/CLI
741:XAMLPad
736:WinDiff
647:MSBuild
586:Express
522:. 1993.
293:SoftICE
149:windows
57: (
1332:WinDbg
967:Native
808:C++/CX
798:Bosque
781:VB.NET
776:legacy
679:Roslyn
669:QuickC
662:QBasic
652:Pascal
610:Others
504:
428:
269:SYMDEB
263:Symdeb
245:QuickC
133:SYMDEB
121:MS-DOS
73:MS-DOS
1373:vcpkg
1368:NuGet
1247:Other
1059:Razor
1016:WinUI
840:Dafny
768:BASIC
726:ILAsm
627:FxCop
617:Blend
183:80x86
129:DEBUG
1207:MSDE
1146:UMDF
1141:KMDF
1103:LINQ
1083:MAUI
1044:AJAX
1039:Core
1026:.NET
949:XAML
909:Lean
865:Java
835:C/AL
581:Code
502:ISBN
426:ISSN
195:SIMD
131:and
119:for
92:Type
59:1985
52:1985
1388:WiX
1363:npm
1158:WDM
1136:WDF
1131:WDK
1054:MVC
1001:UWP
984:XNA
944:VPL
870:J++
786:VBA
191:MMX
187:FPU
135:or
85:x86
1431::
934:Q#
875:J#
855:F*
850:F#
830:C#
518:.
500:.
464:.
446:.
397:.
373:.
354:.
341:^
331:.
271:.
123:,
914:P
550:e
543:t
536:v
510:.
474:.
450:.
432:.
383:.
335:.
61:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.