PAPI_get_executable_info

Langue: en

Version: September, 2004 (fedora - 01/12/10)

Section: 3 (Bibliothèques de fonctions)

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: %s,exeinfo->fullname);
 printf("Program: %s,exeinfo->address_info.name);
 printf("Text start: %p, Text end: %p,exeinfo->address_info.text_start,exeinfo->address_info.text_end);
 printf("Data start: %p, Data end: %p,exeinfo->address_info.data_start,exeinfo->address_info.data_end);
 printf("Bss start: %p, Bss end: %p,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

PAPI_get_hardware_info(3), PAPI_get_opt(3)