Q11877: Debugging Routines That Are in Libraries
Article: Q11877 Product(s): See article Version(s): 1.00 1.10 2.00 2.10 2.20 2.30 | 2.20 2.30 Operating System(s): MS-DOS | OS/2 Keyword(s): ENDUSER | TAR55321 | mspl13_basic Last Modified: 21-AUG-1989 Question: When CodeView attempts to debug a function from a library module, it is unable to find the source even when that module was compiled with -Zi. It prompts me to "Enter Directory for Program (CR for None)?". I enter the directory in which PROGRAM.C resides, but CodeView cannot find it. Is there any solution other than not placing modules I wish to debug in libraries? Response: This is a consequence of the way the LIB utility works. When adding an object module to a library, LIB records only the source file's base name, not its extension. Therefore, "c:\c\source\module1.c" becomes "c:\c\source\module1" (no extension). When you are debugging an application that calls "module1", CodeView attempts to find "c:\c\source\module1". However, it does not accept the filename you give because the file is really named "module1.c". One way to work around this restriction is to rename your source file from "c:\c\source\module1.c" to "c:\c\source\module1" (no extension) after you have compiled it and put it into a library. This way, the actual name will match the name CodeView is searching for. Another solution is to use Library Manager Version 3.07 (which came with MASM 5.00) or later; this solves the problem by not stripping the file's extension as it is put into a library.
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.