st_is_obj_call_shared, st_is_obj_shared,
st_is_obj_stripped, st_obj_bss_size, st_obj_bss_start,
st_obj_data_size, st_obj_data_start, st_obj_libnames,
st_obj_mem_addr, st_obj_name, st_obj_path, st_obj_rpath,
st_obj_soname, st_obj_text_size, st_obj_text_start - general
calls for accessing information about an object file
#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_bss_size(
st_obj_t *obj,
unsigned long *bsize ); st_status_t
st_obj_bss_start(
st_obj_t *obj,
st_addr_t *bss ); st_status_t st_obj_data_size(
st_obj_t *obj,
unsigned long *dsize ); st_status_t
st_obj_data_start(
st_obj_t *obj,
st_addr_t *data ); st_status_t st_obj_libnames(
st_obj_t *obj,
[char **list],
int *count ); 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_obj_name(
st_obj_t *obj,
char *name ); st_status_t st_obj_path(
st_obj_t *obj,
char **path ); st_status_t st_obj_rpath(
st_obj_t *obj,
char **rpath ); st_status_t st_obj_soname(
st_obj_t *obj,
char **soname ); st_status_t st_obj_text_size(
st_obj_t *obj,
unsigned long *tsize ); st_status_t
st_obj_text_start(
st_obj_t *obj,
st_addr_t *text );
Symbol Table and Object File Access Library (libst.a)
Specifies an object handle, as returned by the
st_obj_open() function. Specifies the 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 a
nonshared or shared library. Specifies the 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 suffix) or FALSE if it is a call-shared or
nonshared object. Specifies the address to which
st_is_obj_stripped() returns a Boolean value of TRUE if
the symbol table has been stripped from the specified
object. Specifies the address to which st_obj_name()
returns a pointer to the null-terminated string of the
object name specified in a prior st_obj_open() call for
the specified object. Specifies the address to which
st_obj_path() returns a pointer to the null-terminated
string of the directory portion of an object pathname for
the specified object. Specifies the address to which
st_obj_soname() returns a pointer to the null-terminated
string of the internal object name of a shared library
object. Specifies the address to which st_obj_rpath()
returns a pointer to the null-terminated string of the
internal library search directories for the specified
object. Specifies the address to which st_obj_libnames()
returns a pointer to an array of null-terminated strings
of the shared library dependencies for the specified
shared library or executable object. Specifies the
address to which st_obj_libnames() returns the number of
entries in the array returned in the list parameter.
Specifies the 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.
Specifies the address to which st_obj_text_size() returns
the size of the specified object's text segment. Specifies
the 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.
Specifies the address to which st_obj_data_size() returns
the size of the specified object's data segment. Specifies
the 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.
Specifies the address to which st_obj_bss_size() returns
size of the specified object's bss segment. 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. Specifies the
address to which st_obj_mem_addr() writes the address to
which libst has read the file indicated by file_addr.
These routines return information about an object: Determine
whether the specified object is a call-shared object,
a nonshared object, or a shared library. Determines
whether the symbol table has been stripped from the specified
object. 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. Returns the nullterminated
string that is the directory portion of the
specified object's pathname. Returns the null-terminated
string that is the specified object's soname or a null
pointer if the object is not a shared library. The soname
is the internal name of a shared library that is used by
the system linker (see ld(1)) and loader (see loader(5))
to identify that library. Returns the null-terminated
string that is the specified object's rpath or a null
pointer if the object does not contain an rpath definition.
The rpath string is a colon-separated list of
library search directory names. These directories are used
by the loader (see loader(5)) to locate shared library
dependencies. Returns an array of null-terminated strings
that are the names of the specified object's shared
library dependencies. If the object has no shared library
dependencies, this function returns a null pointer and a
count of 0. 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. Returns the size of the specified object's text
segment. Returns the size of the specified object's data
segment. 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. 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. Returns the size that the specified object's
bss segment would have in the executing object. 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.
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 nonzero return status is the recommended method for
detecting an error return from a libst function.
Header file that contains all definitions and function
prototypes for libst.a functions
Commands: atom(1), ld(1), loader(5)
Functions: libst_intro(3), st_addr_to_file(3),
st_file_lang(3), st_obj_file_start(3), st_obj_open(3),
st_objlist_append(3), st_proc_addr(3), st_sym_value(3)
st_dyn_start(3)
Programmer's Guide
st_obj_calls(3)
[ Back ] |