Index Click this button to go to the index for this section.


st_obj_file_start(3)

NAME

st_is_obj_call_shared, st_is_obj_shared, st_is_obj_stripped, st_obj_file_start, st_obj_file_count, st_obj_file_next, st_obj_proc_start, st_obj_proc_count, st_obj_proc_next, st_obj_name, st_obj_text_start, st_obj_text_size, st_obj_data_start, st_obj_data_size, st_obj_bss_start, st_obj_bss_size, st_obj_mem_addr, st_get_mangled_name_flag, st_set_mangled_name_flag - Access information about an object or set an object's name-demangling controls

LIBRARY

Symbol Table and Object File Access Library (libst.a)

SYNOPSIS

#include <st.h> st_status_t st_is_obj_call_shared ( st_obj_t *obj, st_bool_t *cs ); st_status_t st_is_obj_shared ( st_obj_t *obj, st_bool_t *shared ); st_status_t st_is_obj_stripped ( st_obj_t *obj, st_bool_t *stripped ); st_status_t st_obj_file_start ( st_obj_t *obj, st_file_t *fstart ); st_status_t st_obj_file_count ( st_obj_t *obj, unsigned int *nfiles ); st_status_t st_obj_file_next ( st_obj_t *obj, st_file_t fcur, st_file_t *fnext ); st_status_t st_obj_proc_start ( st_obj_t *obj, st_proc_t *pstart ); st_status_t st_obj_proc_count ( st_obj_t *obj, unsigned int *nprocs ); st_status_t st_obj_proc_next ( st_obj_t *obj, st_proc_t pcur, st_proc_t *pnext ); st_status_t st_obj_name ( st_obj_t *obj, char **name ); st_status_t st_obj_text_start ( st_obj_t *obj, st_addr_t *text ); st_status_t st_obj_text_size ( st_obj_t *obj, unsigned long *tsize ); st_status_t st_obj_data_start ( st_obj_t *obj, st_addr_t *data ); st_status_t st_obj_data_size ( st_obj_t *obj, unsigned long *dsize ); st_status_t st_obj_bss_start ( st_obj_t *obj, st_addr_t *bss ); st_status_t st_obj_bss_size ( st_obj_t *obj, unsigned long *bsize ); st_status_t st_obj_mem_addr ( st_obj_t *obj, st_addr_t file_addr, st_addr_t *mem_addr ); st_status_t st_set_mangled_name_flag ( st_obj_t *obj, unsigned int flag ); st_status_t st_get_mangled_name_flag ( st_obj_t *obj, unsigned int *flag );

PARAMETERS

obj Specifies an object handle, as returned by the st_obj_open function. cs Specifies an address to which st_is_obj_call_shared returns a Boolean value of TRUE if the specified object is call-shared or FALSE if it is nonshared or a shared library. shared Specifies an address to which st_is_obj_shared returns a Boolean value of TRUE if the specified object is a shared library (that is, a file with an .so suffix) or FALSE if it is a call-shared or nonshared object. stripped Specifies an address to which st_is_obj_stripped returns a Boolean value of TRUE if the symbol table has been stripped from the specified object. fstart Specifies an address to which st_obj_file_start writes the handle of the first file in the specified object. nfiles Specifies an address to which st_obj_file_count writes the number of files in the specified object. fcur Specifies the handle of a file within the specified object (for instance, the handle returned by st_obj_file_start). st_obj_file_next uses this handle to determine fnext. fnext Specifies an address to which st_obj_file_next returns the handle of the file following fcur in the specified object. If fcur equals or exceeds the number of files in the specified object, st_obj_file_next returns ST_E_FILE_RANGE and returns a value of -1 to the location to which fnext points. pstart Specifies an address to which st_obj_proc_start writes the handle of the first procedure in the specified object. nprocs Specifies an address to which st_obj_proc_count writes the number of procedures in the object. pcur Specifies the handle of a procedure within the specified object (for instance, the handle returned by st_obj_proc_start). st_obj_proc_next uses this handle to determine pnext. pnext Specifies an address to which st_obj_proc_next returns the handle of the procedure following pcur in the specified object. If pcur equals or exceeds the number of procedures in the specified object, st_file_proc_next returns ST_E_PROC_RANGE and returns a value of -1 to the location to which pnext points. name Specifies an address to which st_obj_name returns the null- terminated string of the object name specified in a prior st_obj_open call for the specified object. text Specifies an address to which st_obj_text_start returns the starting address of the object's text segment as it would reside in memory when the object is executing. tsize Specifies an address to which st_obj_text_size returns the size of the specified object's text segment. data Specifies an address to which st_obj_data_start returns the starting address of the specified object's data segment as it would reside in memory when the object is executing. dsize Specifies an address to which st_obj_data_size returns the size of the specified object's data segment. bss Specifies an address to which st_obj_bss_start returns the starting address of the specified object's bss segment as it would reside in memory when the object is executing. bsize Specifies an address to which st_obj_bss_size returns size of the specified object's bss segment. file_addr Specifies an address in the specified object file. st_obj_mem_addr translates this address to the equivalent address in memory to which libst has read the file. mem_addr Specifies an address to which st_obj_mem_addr writes the address to which libst has read the file indicated by file_addr. flag Specifies an address to which st_get_mangled_name_flag returns the current state of the specified object's name-demangling flags, or an address containing the flag values that st_set_mangled_name_flag is to write to the specified object's name-demangling flags. Valid name-demangling flags are defined in /usr/include/cmplrs/demangle_string.h.

DESCRIPTION

These routines return information about an object or set its name- demangling controls. The st_is_obj_call_shared and st_is_obj_shared functions determine whether the specified object is a call-shared object, a nonshared object, or a shared library. The st_is_obj_stripped function determines whether the symbol table has been stripped from the specified object. The st_obj_file_start function returns the handle of the first file in the specified object. You can use this file handle to call other functions that return information about the procedures, symbols, or lines in the file. The st_obj_file_count function returns the number of files in the specified object. The st_obj_file_next function returns the handle of the file following fcur in the specified object. You can use this function as a means of indexing through the files in an object. If fcur equals or exceeds the number of files in the specified object, st_obj_file_next returns ST_E_FILE_RANGE and returns a value of -1 to the location to which fnext points. The st_obj_proc_start function returns the handle of the first procedure in the specified object. See st_file_proc_start(3) for information on accessing the procedures in a particular file. The st_obj_proc_count function returns the number of procedures in the object. The st_obj_proc_next function returns the handle of the procedure following pcur in the specified object. You can use this function as a means of indexing through the procedures in an object. If pcur equals or exceeds the number of procedures in the specified object, st_obj_proc_next returns ST_E_PROC_RANGE and returns a value of -1 to the location to which pnext points. The st_obj_name function returns the null-terminated string that was specified as the object's name in a prior call to st_obj_open for the specified object. The st_obj_text_start function returns the starting address of the specified object's text segment as it would reside in memory when the object is executing. You can use the st_obj_mem_addr function to translate text addresses for the executable to the address in memory to which libst has loaded a copy of the file. The st_obj_text_size function returns the size of the specified object's text segment. The st_obj_data_start function returns the starting address of the specified object's data segment as it would reside in memory when the object is executing. You can use the st_obj_mem_addr function to translate data addresses for the executable to the address in memory to which libst has loaded a copy of the file. The st_obj_data_size function returns the size of the specified object's data segment. The st_obj_bss_start function returns the starting address of the specified object's bss segment as it would reside in memory when the object is executing. Because no space is allocated in the on-disk object file for the bss segment, you cannot translate the bss segment addresses using st_obj_mem_addr as you can use the function to translate text and data addresses. The st_obj_bss_size function returns the size the specified object's bss segment would have in the executing object. The st_obj_mem_addr function translates an address from the specified object file to the equivalent address in memory to which libst has read the file. You can then access the text and initialized data segments of a program. You cannot access the bss segments and heap because the object is not executing. Name demangling is enabled or disabled at the object level only for C++ files. By default, name demangling is enabled when an object is opened. The name demangling flags have an effect on the C++ name translations that are performed when functions such as st_sym_name are called. The st_get_mangled_name_flag function returns the current state of the name- demangling flags for the specified object. The st_set_mangled_name_flag function sets the name-demangling flags for the specified object to the value contained in the address specified in the flag parameter. Valid name-demangling flags are defined in /usr/include/cmplrs/demangle_string.h.

RETURN VALUES

All functions indicate success by returning a value of 0 (zero). A positive return value is an errno value from a system call. A negative return value is a library error or informational code. The library codes are documented in st.h. Return parameters are set to 0 or -1 when an error occurs. Address parameters are set to 0 while file and procedure handles are set to -1. An exception to this is if a NULL pointer for the object or other return parameter is input. In these cases, the return parameters will be unchanged. A non-zero return status is the recommended method for detecting an error return from a libst function.

FILES

/usr/include/st.h header file that contains all definitions and function prototypes for libst.a functions /usr/include/cmplrs/demangle_string.h header file that controls name-demangling operations for C++ objects

RELATED INFORMATION

Commands: atom(1) Functions: libst_intro(3), st_addr_to_file(3), st_file_lang(3), st_obj_open(3), st_objlist_append(3), st_proc_addr(3), st_sym_value(3)