DOCUMENT:Q131006 11-JUN-2002 [visualc] TITLE :PRB: Dr Watson Won't Log Stack Symbols in Visual C++ App PRODUCT :Microsoft C Compiler PROD/VER::2.0,2.1,3.1,3.5,3.51,4.0,5.0,6.0 OPER/SYS: KEYWORDS:kbOSWinNT310 kbOSWinNT351 kbVC200 kbVC210 kbVC400 kbVC500 kbVC600 kbOSWinNT350 ====================================================================== ------------------------------------------------------------------------------- The information in this article applies to: - Microsoft Visual C++, versions 2.0, 2.1, 4.0 - Microsoft Visual C++, 32-bit Enterprise Edition, versions 5.0, 6.0 - Microsoft Visual C++, 32-bit Professional Edition, versions 5.0, 6.0 - Microsoft Visual C++, 32-bit Learning Edition, version 6.0 - Microsoft Windows NT Server versions 3.1, 3.5, 3.51, 4.0 ------------------------------------------------------------------------------- SYMPTOMS ======== Dr. Watson won't log stack information in postmortem debug log if the application was built with the Visual C++, versions 2.x and later, default settings. CAUSE ===== Dr. Watson can be configured to log debug information into a log file when an unhandled user mode exception occurs. For more information about this please see the following article in the Microsoft Knowledge Base: Q121434 Specifying the Debugger for Unhandled User Mode Exceptions With applications built with Visual C++ version 1.0, the stack information includes the symbol information for the functions on the stack frame. With applications built with Visual C++ versions 2.x and later this information is no longer included. This results in an incomplete log. This is because Dr. Watson requires that symbol information be in COFF format. By default, the Visual C++ version 1.0 link build options included both COFF and Microsoft Format debug symbols. However, with Visual C++ versions 2.x and later, this has changed; only Microsoft Format style symbols are included. RESOLUTION ========== To build the application with the required symbols for Dr. Watson, the build parameters must be changed for the project. Use the following steps from within the Visual C++ integrated development environment: 1. Load the desired project. 2. For Visual C++ version 4.0, choose Settings... from the Build menu. For Visual C++ version 2.x, choose Settings from the Project menu. 3. Select the Link tab. 4. Select Debug from the Category list box. 5. Select the "Generate Debug Info" check box. 6. Select the "Both Formats" option to include COFF and Microsoft Format symbols. 7. Rebuild the application. Additional query words: prodnt ====================================================================== Keywords : kbOSWinNT310 kbOSWinNT351 kbVC200 kbVC210 kbVC400 kbVC500 kbVC600 kbOSWinNT350 Technology : kbVCsearch kbVC400 kbWinNTsearch kbWinNT351search kbWinNT350search kbWinNT400search kbWinNTSsearch kbWinNTS400search kbWinNTS400 kbWinNTS351 kbWinNTS350 kbWinNTS310 kbWinNTS351search kbWinNTS350search kbWinNTS310search kbAudDeveloper kbWinNT310Search kbVC500 kbVC600 kbVC200 kbVC210 kbVC32bitSearch kbVC500Search Version : :2.0,2.1,3.1,3.5,3.51,4.0,5.0,6.0 Issue type : kbprb ============================================================================= 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 2002.