|
  PAPIC:PAPI get executable info.3
| |
ViewsFrom PAPIDocs
(Redirected from PAPIC:PAPIF get exe info.3)
NAME
SynopsisC Interface #include <papi.h> const PAPI_exe_info_t *PAPI_get_executable_info(void); Fortran Interface #include fpapi.h PAPIF_get_exe_info(C_STRING fullname, C_STRING name, C_LONG_LONG text_start, C_LONG_LONG text_end, C_LONG_LONG data_start, C_LONG_LONG data_end, C_LONG_LONG bss_start, C_LONG_LONG bss_end, C_INT check) DescriptionIn C, this function returns a pointer to a structure containing information about the current program. In Fortran, the fields of the structure are returned explicitly. ArgumentsThe following arguments are implicit in the structure returned by the C function, or explicitly returned by Fortran. fullname -- fully qualified path + filename of the executable name -- filename of the executable with no path information text_start, text_end -- Start and End addresses of program text segment data_start, data_end -- Start and End addresses of program data segment bss_start, bss_end -- Start and End addresses of program bss segment ErrorsPAPI_EINVAL One or more of the arguments is invalid. BugsOnly the and fields are filled on every architecture. EXAMPLEconst PAPI_exe_info_t *prginfo = NULL; if ((prginfo = PAPI_get_executable_info()) == NULL) exit(1); printf("Path+Program: %s\n",exeinfo->fullname); printf("Program: %s\n",exeinfo->address_info.name); printf("Text start: %p, Text end: %p\n",exeinfo->address_info.text_start,exeinfo->address_info.text_end); printf("Data start: %p, Data end: %p\n",exeinfo->address_info.data_start,exeinfo->address_info.data_end); printf("Bss start: %p, Bss end: %p\n",exeinfo->address_info.bss_start,exeinfo->address_info.bss_end); DATA STRUCTUREStypedef struct _papi_address_map { char name[PAPI_HUGE_STR_LEN]; caddr_t text_start; /* Start address of program text segment */ caddr_t text_end; /* End address of program text segment */ caddr_t data_start; /* Start address of program data segment */ caddr_t data_end; /* End address of program data segment */ caddr_t bss_start; /* Start address of program bss segment */ caddr_t bss_end; /* End address of program bss segment */ } PAPI_address_map_t; typedef struct _papi_program_info { char fullname[PAPI_HUGE_STR_LEN]; /* path+name */ PAPI_address_map_t address_info; } PAPI_exe_info_t; See Also |