PAPIC:PAPI get executable info.3
From PAPIDocs
(Redirected from PAPIC:PAPIF get exe info.3)
Jump to: navigation, search


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

Errors

PAPI_EINVAL One or more of the arguments is invalid.

Bugs

Only the and fields are filled on every architecture.

EXAMPLE

const 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 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;

See Also

PAPI_get_opt(3), PAPI_get_hardware_info(3)