Visual C++ README.WRI Part 8-Profiler

ID: Q97545


The information in this article applies to:


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 query words: 1.00


Keywords          : kb16bitonly kbGenInfo kbVC 
Version           : 1.00
Platform          : MS-DOS 
Issue type        : 

Last Reviewed: July 30, 1999