Knowledge (XXG)

CodeView

Source 📝

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:)

Index

Original author(s)
Developer(s)
Microsoft
Operating system
MS-DOS
Platform
x86
Type
Debugger
debugger
Microsoft
Visual Basic
MS-DOS
Microsoft BASIC PDS
DEBUG
SYMDEB
Digital Research
windows
source code
hexadecimal dump
80x86
FPU
MMX
SIMD
Visual C++
Integrated Development Environment
QuickC
Microsoft Visual Studio
PC Magazine
Borland Turbo Debugger

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.