Q57941: Methods for Debugging Large Programs within the 640K DOS Limit
Article: Q57941 Product(s): See article Version(s): 1.00 1.10 2.00 2.10 2.20 2.30 Operating System(s): MS-DOS Keyword(s): ENDUSER | | mspl13_basic Last Modified: 12-FEB-1990 Because of the 640K limit under DOS, it is common to run out of memory when trying to debug large programs with CodeView. CodeView requires over 200K of RAM, not including the program being debugged. In addition, the symbolic information added by compiling with the /Zi switch greatly increases the executable size of the program you are trying to debug. The following is a list of the possible ways of getting around the limited memory problems for debugging: 1. Include full symbolic information only in those modules that contain source code that you are currently trying to debug. In other words, compile only those modules with the /Zi switch. For the other modules, compile with the /Zd option, to put only line number information in the object files. 2. Use overlays to swap parts of your code in and out, even if it is just during the development process. You can always link without overlays once your application is debugged. 3. If you have expanded memory, use it by invoking CodeView with the /E switch. To work properly with CodeView, you should have LIM EMS 3.2 or (preferably) 4.0. Expanded memory is used for storing the symbolic information, which can be a great percentage of your .EXE size. 4. Use the CVPACK utility, which is documented in the Update Section of the C 5.1 "Microsoft CodeView and Utilities Software Development Tools for MS OS/2 and MS-DOS Operating Systems Update" manual. CVPACK will compress the debug information in the file by removing duplicate references. Use the /p option to achieve maximum compression. In trying to obtain a workable solution, you can use any combination of the above methods. If adequate debugging is still impossible, then you might look into the following possibilities: 5. Switch to the OS/2 operating system. This may be limited as far as how much real mode program debugging you can do, depending on how compatible your application is with protected mode requirements. 6. You might look into MagicCV from Nu-Mega Technologies of New Hampshire. MagicCV requires a 386-based computer because it uses virtual-86 mode of the processor to run CodeView in extended memory. This method reportedly allows CodeView to use only about 8K of conventional DOS memory. It should be noted that Microsoft does not endorse MagicCV or make any claims as to its usage. The information is offered only as a potential option. Nu-Mega can be reached at (603) 888-2386.
THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.
Copyright Microsoft Corporation 1986-2002.