Microsoft KB Archive/97545

{|
 * width="100%"|

Visual C++ README.WRI Part 8-Profiler

 * }

Q97545

-

The information in this article applies to:


 * Microsoft Visual C++, 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.

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 .DLL OBJECT .DLL FUNCTION WEP DELETE where  and  are the appropriate names.

Tab-Delimited Output Format
The line information record (record type 7) described on page 55 of the &quot;Source Profiler User's Guide&quot; 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 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 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.

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.

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.

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

PR1432 A user-defined breakpoint was trapped at



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 :

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.

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

PR3323 The profiler was unable to find the line number for

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 :

Module:

Linker Address: :

"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

Issue type :

Technology : kbVCsearch kbAudDeveloper kbvc100