Visible to Intel only — GUID: GUID-5E246BF8-678C-4839-BAC2-C1DDCDF366D0
Visible to Intel only — GUID: GUID-5E246BF8-678C-4839-BAC2-C1DDCDF366D0
Dumping Profile Information
The _PGOPTI_Prof_Dump_All() function dumps the profile information collected by the instrumented application. The prototype of the function call is as follows:
void _PGOPTI_Prof_Dump_All(void);
An older version of this function, _PGOPTI_Prof_Dump(), is deprecated and no longer used.
The new function, _PGOPTI_Prof_Dump_All(), operates much like the deprecated function, except on Linux operating systems, when it is used in connection with shared libraries (.so). When _PGOPTI_Prof_Dump_All() is called, it insures that a .dyn file is created for all shared libraries needing to create a .dyn file. Use _PGOPTI_Prof_Dump_All() on Linux to insure portability and correct functionality.
The environment variables that affect the _PGOPTI_Prof_Dump_All() function are PROF_DIR, COV_DIR, PROF_DPI, and COV_DPI. Set the PROF_DIR or COV_DIR environment variable to specify the directory to which the .dyn file must be stored. Alternately, you can use the –[Q]prof_dir compiler option, when building with -[Q]prof-gen, to specify this directory without setting the PROF_DIR or COV_DIR variable. Set the PROF_DPI or COV_DPI environment variables to specify an alternative .dpi filename. The default filename is pgopti.dpi. You can also use the –prof_dpi profmerge tool option, when merging the .dyn files, to specify the filename for the summary .dpi file.
Recommended Usage
If your application does not use a standard exit() call, insert a single call to this function in the body of the function that terminates the user application. Normally, _PGOPTI_Prof_Dump_All() should be called just once. It is also possible to use this function in conjunction with _PGOPTI_Prof_Reset_All() function to generate multiple .dyn files (presumably from multiple sets of input data).
If the data is not reset between the dumps with a call to the _PGOPTI_Prof_Reset_All() function, the counters will continue accumulating data, resulting in the subsequent .dyn file containing data that was previously dumped.
#include <pgouser.h> void process_data(int foo) {} int get_input_data() { return 1; } int main(void) { // Selectively collect profile information for the portion // of the application involved in processing input data. int input_data = get_input_data(); while (input_data) { _PGOPTI_Prof_Reset All(); process_data(input_data); _PGOPTI_Prof_Dump_All(); input_data = get_input_data(); } return 0; }