NAME

PAPI_get_executable_info - get the executable’s address space info

CONTENTS

Synopsis
Description
Arguments
Return Values
Errors
Example
Data Structures
Authors
Bugs
See Also

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 C_LONG_LONG data_start,  
           C_LONG_LONG  data_end,

        C_LONG_LONG C_LONG_LONG bss_end, 

        C_INT  

DESCRIPTION

In C, this function returns a pointer to a structure containing information about the current program. In Fortran, some 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 (PAPI_library_init(PAPI_VER_CURRENT) != PAPI_VER_CURRENT)
  exit(1);

if ((prginfo = PAPI_get_executable_info()) == NULL) exit(1);

printf("Start of user program is at %p\n",prginfo->text_start); printf("End of user program is at %p\n",prginfo->text_end);

DATA STRUCTURES


typedef struct _papi_address_map { char name[PAPI_MAX_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_MAX_STR_LEN]; /* path+name */ PAPI_address_map_t address_info; } PAPI_exe_info_t;

AUTHORS

The PAPI Team. See them at the PAPI Web Site: http://icl.cs.utk.edu/projects/papi

BUGS

Only the text_start and text_end fields are filled on every architecture.

SEE ALSO

PAPI_library_init (3), PAPI_get_hardware_info (3), PAPI_get_opt (3)


PAPI Programmer’s Reference PAPI_get_executable_info (3) November, 2003

  Innovative Computing Laboratory
2001 R&D Winner  
Contact PAPI: papi@cs.utk.edu Computer Science Department
  University of Tennessee