table of contents
PAPI_get_executable_info(3) | PAPI | PAPI_get_executable_info(3) |
NAME¶
PAPI_get_executable_info - get the executable's address space info
SYNOPSIS¶
C 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)
DESCRIPTION¶
In 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.
ARGUMENTS¶
The 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
RETURN VALUES¶
On success, the C function returns a non-NULL pointer, and the
Fortran function returns PAPI_OK.
On error, NULL is returned by the C function, and a non-zero error code is
returned by the Fortran function.
ERRORS¶
- PAPI_EINVAL
- One or more of the arguments is invalid.
EXAMPLE¶
const PAPI_exe_info_t *prginfo = NULL; if ((prginfo = PAPI_get_executable_info()) == NULL)
exit(1); printf("Path+Program: %s0,exeinfo->fullname); printf("Program: %s0,exeinfo->address_info.name); printf("Text start: %p, Text end: %p0,exeinfo->address_info.text_start,exeinfo->address_info.text_end); printf("Data start: %p, Data end: %p0,exeinfo->address_info.data_start,exeinfo->address_info.data_end); printf("Bss start: %p, Bss end: %p0,exeinfo->address_info.bss_start,exeinfo->address_info.bss_end);
DATA STRUCTURES¶
typedef 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;
BUGS¶
Only the text_start and text_end fields are filled on every architecture.
SEE ALSO¶
September, 2004 | PAPI Programmer's Reference |