Visual C++ README.WRI Part 8-Profiler

Last reviewed: July 17, 1997
Article ID: Q97545
1.00 MS-DOS kbreadme

The information in this article applies to:

  • Microsoft Visual C++ for MS-DOS, version 1.0

SUMMARY

The text below presents information in Part 8 of the README.TXT file distributed with Microsoft Visual C++ version 1.0. Setup installs README.WRI in the MSVC\HELP directory.

MORE INFORMATION

Profiling Windows Exit Procedures (WEPs)

You cannot use the Profiler while a WEP is being called. The profiler normally detects that a WEP is about to be called, and removes all breakpoints from the .DLL. That is, no profiling of a WEP takes place, even though you may see an entry for it in the output from PLIST. In addition, function calls made by a WEP will not be profiled, though the same function calls can safely be made at any other time.

Under certain circumstances involving .DLLs loaded with LoadLibrary(), the Profiler may be unable to detect that a WEP is about to be called. In this case, you will most likely experience a crash of the system during or after profiling. If you do, you can work around the problem by explicitly turning off profiling of all WEPs and all functions that they call. To do so, you must use a .PCF file as input to PREP. The .PCF file must contain these lines for each .DLL containing a WEP:

   PROGRAM <XXX>.DLL
   OBJECT <YYY>.DLL
   FUNCTION WEP DELETE

where <XXX> and <YYY> are the appropriate names.

Tab-Delimited Output Format

The line information record (record type 7) described on page 55 of the "Source Profiler User's Guide" should include a sixth field, Time. The Time field gives the amount of time spent executing the line of code, in milliseconds. This field is zero when profiling by counting or coverage.

PLIST Command-Line Options

The PLIST /T command-line option, described on page 43 of Source Profiler User's Guide, will be ignored if preceded by /SC, /SL, /SLS, /SN, /SNS, or /ST.

Profiler Errors

Add the following messages to the list of profiler errors:

   PR1311   A profiling type must be specified before using the
            <command> command or equivalent option.

       The type of profiling must be set with the LPROFILE or FPROFILE
       command or the equivalent PREP command-line option before using
       this command in a .PCF.

   PR1312   A PROGRAM command or /P command-line option must be used
            before using the <command> command or equivalent option.

       The program being profiled must be specified with the PROGRAM
       command or the PREP /P command-line option before using this
       command in a .PCF. The program name specified must be a valid
       .EXE, .COM, or .DLL file.

   PR1313   An OBJECT command must be used before using the <command>
            command.

       The object file being profiled must be specified with the
       OBJECT command before using this command in a .PCF.

   PR1314   A FILE command must be used before using the <command>
            command.

       The source file being profiled must be specified with the FILE
       command before using this command in a .PCF.

   PR1327   An invalid profiling action was requested.

       There was an attempt to perform an action that did not
       correspond to the current profiling type. This error can be
       caused by using the LINE.PCF command with function profiling.

   PR1328   Because of a .PBT version number mismatch, the profiler
            was unable to read .PBT file <filename>.

       There was an attempt to read two incompatible .PBT files.

   PR1432   A user-defined breakpoint was trapped at
            <segment>:<offset>

       The Profiler trapped a user-defined breakpoint (INT3) while
       executing the program being profiled. The breakpoint was
       trapped in a location that was being profiled.

   PR1433   An unexpected breakpoint was trapped at <segment>:<offset>

       The Profiler trapped a breakpoint (INT3) while executing the
       program being profiled. The breakpoint was trapped in a
       location that was not being profiled.

   PR1605   Because of a .PBT version number mismatch, the profiler
            was unable to merge .PBT file <filename>.

       There was an attempt to merge two incompatible .PBT files.

   PR3323   The profiler was unable to find the line number for
            function <function> in the source file.

       The CodeView information in the executable file is
       inconsistent. The information indicates that there is a
       function, procedure, or subroutine at a certain line number,
       but there was none found on that line.

   PR4428   A user-defined breakpoint was found at <segment>:<offset>
            Module: <filename>
            Linker Address: <segment>:<offset>

       A breakpoint was found at the specified location. The Profiler
       was told to profile this location. Processing will continue as
       normal.


Additional reference words: 1.00
KBCategory: kbreadme
KBSubcategory: VCGenIss
Keywords : kb16bitonly VCGenIss kbreadme
Version : 1.00
Platform : MS-DOS


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.

Last reviewed: July 17, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.