/***************************************************************************** * This is an example using the low level function PAPI_get_executable_info * * get the executable address space information. This function returns a * * pointer to a structure containing address information about the current * * program. * ******************************************************************************/ #include #include #include "papi.h" /* This needs to be included every time you use PAPI */ int main() { int i,tmp=0; int retval; const PAPI_exe_info_t *prginfo = NULL; /**************************************************************************** * This part initializes the library and compares the version number of the * * header file, to the version of the library, if these don't match then it * * is likely that PAPI won't work correctly.If there is an error, retval * * keeps track of the version number. * ****************************************************************************/ if((retval = PAPI_library_init(PAPI_VER_CURRENT)) != PAPI_VER_CURRENT ) { printf("Library initialization error! \n"); exit(1); } for(i=0;i<1000;i++) tmp=tmp+i; /* PAPI_get_executable_info returns a NULL if there is an error */ if ((prginfo = PAPI_get_executable_info()) == NULL) { printf("PAPI_get_executable_info error! \n"); exit(1); } printf("Start text addess of user program is at %p\n", prginfo->address_info.text_start); printf("End text address of user program is at %p\n", prginfo->address_info.text_end); exit(0); }