*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> st_sym_value (3)              
Title
Content
Arch
Section
 

st_sym_value(3)

Contents


NAME    [Toc]    [Back]

       st_sym_value,  st_sym_type,  st_sym_class, st_sym_to_file,
       st_sym_name,        st_sym_name_copy,        st_free_name,
       st_sym_to_outer_scope_sym,   st_end_sym,  st_proc_end_sym,
       st_external_name_sym, st_frame_offset_to_sym, st_sym_size,
       st_is_sym_weak,     st_is_sym_local,     st_is_sym_global,
       st_get_mangled_name_flag,    st_set_mangled_name_flag    -
       access  information  about  the  symbols in an object, and
       access or set symbol name demangling controls

SYNOPSIS    [Toc]    [Back]

       #include <st.h>

       st_status_t st_sym_value(
               st_obj_t *obj,
               st_sym_t sym,
               unsigned long *value ); st_status_t st_sym_type(
               st_obj_t *obj,
               st_sym_t sym,
               unsigned    int    *sym_type    );     st_status_t
       st_sym_class(
               st_obj_t *obj,
               st_sym_t sym,
               unsigned    int    *sym_class    );    st_status_t
       st_sym_to_file(
               st_obj_t *obj,
               st_sym_t sym,
               st_file_t *file ); st_status_t st_sym_name(
               st_obj_t *obj,
               st_sym_t sym,
               char **name) ); st_status_t st_sym_name_copy(
               st_obj_t *obj,
               st_sym_t sym,
               char *name_buf,
               int buflen,
               int *truncated ); void st_free_name(
               st_obj_t *obj,
               char         *name         );          st_status_t
       st_sym_to_outer_scope_sym(
               st_obj_t *obj,
               st_sym_t sym,
               st_sym_t *osym ); st_status_t st_end_sym(
               st_obj_t *obj,
               st_sym_t sym,
               st_sym_t *esym ); st_status_t st_proc_end_sym(
               st_obj_t *obj,
               st_sym_t sym,
               st_sym_t    *esym    );    st_status_t   st_external_name_sym(

               st_obj_t *obj,
               const char *name,
               st_sym_t  *osym   );   st_status_t   st_frame_offset_to_sym(

               st_obj_t *obj,
               st_proc_t proc,
               int frame_offset,
               st_sym_t *osym,
               int *byte_offset ); st_status_t st_sym_size(
               st_obj_t *obj,
               st_sym_t sym,
               unsigned long *size ); st_status_t st_is_sym_weak(
               st_obj_t *obj,
               st_sym_t symbol,
               st_bool_t *weak ); st_status_t st_is_sym_local(
               st_obj_t *obj,
               st_sym_t symbol,
               st_bool_t *local ); st_status_t st_is_sym_global(
               st_obj_t *obj,
               st_sym_t symbol,
               st_bool_t  *global  );   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,

       );

LIBRARY    [Toc]    [Back]

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

PARAMETERS    [Toc]    [Back]

       Specifies   an   object   handle,   as   returned  by  the
       st_obj_open() function.  Specifies a symbol handle.  Specifies
 an address to which st_sym_value() returns the value
       of the specified symbol. The value of a symbol depends  on
       its  type  and class. For procedures, data symbols, or bss
       symbols, the value is the address. For members  of  structures
 or unions, the value is the offset to the field from
       the start of the structure. For  local  symbols  or  arguments,
  the  value  is its relative offset from the procedure's
 frame  pointer.   Specifies  an  address  to  which
       st_sym_type()  returns  the  type of the specified symbol.
       Symbol types are defined in /usr/include/symconst.h.  Each
       symbol  type  definition  begins  with  the prefix st, for
       example,  stProc.    Specifies   an   address   to   which
       st_sym_class()  returns the class of the specified symbol.
       Symbol classes  are  defined  in  /usr/include/symconst.h.
       Each  symbol  class  definition begins with the prefix sc,
       for  example,  scText.   Specifies  an  address  to  which
       st_sym_to_file()  returns the handle of the file that contains
 the given symbol.  Specifies  an  address  to  which
       st_sym_name()  returns  a  pointer  to  a  null-terminated
       string containing the name of the given symbol.  Specifies
       the  address  of  a  buffer  to  which  st_sym_name_copy()
       returns a copy of the specified symbol's name.   Specifies
       the   length   of   the   buffer   (name_buf)   to   which
       st_sym_name_copy() returns a copy of  the  specified  symbol's
 name.  You should add one for the name string's null
       terminator to this count.  Specifies an address  to  which
       st_sym_name_copy()  returns  the  number  of characters by
       which the symbol name returned  to  name_buf  exceeds  the
       number  specified  in  buflen.  If the name exceeds buflen
       characters, st_sym_name_copy() truncates it.  Specifies an
       address  for a symbol handle.  st_sym_to_outer_scope_sym()
       returns the symbol handle of the block or  procedure  that
       contains  the  specified  symbol.   st_external_name_sym()
       returns the symbol handle of the  named  external  symbol.
       st_frame_offset_to_sym()  returns the symbol handle corresponding
 to the specified frame offset in the given procedure.
   Specifies  an  address  to  which  st_end_sym() or
       st_proc_end_sym() returns the ending symbol handle of  the
       block or procedure, respectively, that contains the specified
 symbol.  Specifies a positive number that is a  relative
 offset from the virtual frame pointer for a procedure
       (often the stack  pointer)  that  st_frame_offset_to_sym()
       uses  to  obtain a symbol handle.  Specifies an address to
       which st_frame_offset_to_sym() returns the offset into the
       variable  to which frame_offset corresponds.  Specifies an
       address to which st_sym_size() returns the size  in  bytes
       of the given symbol.  Specify Boolean variables for return
       values.   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    [Toc]    [Back]

       These functions return information about the symbols in an
       object.  Symbols may represent files, procedures, or local
       or global symbols.  Return the value, type, and class of a
       given  symbol.   Returns  the handle of the file that contains
  the  given  symbol.   The  st_sym_name()   function
       returns  a  pointer to a null-terminated string containing
       the name of the given symbol. If the symbol  represents  a
       C++  name  and  name-demangling  is enabled (the default),
       st_sym_name() dynamically allocates the buffer in which it
       stores the name. Otherwise, it sets name to the address of
       the string in the object.   In  either  case,  the  caller
       should  not  modify  the returned name buffer, but instead
       should make modifications to a copy of the name.

              To release a buffer that may have been  dynamically
              allocated  by st_sym_name(), use the st_free_name()
              function.  Ensure that you specify the same  symbol
              handle to st_free_name() that you previously specified
 to st_sym_name(). Otherwise, you may  inadvertently
  release memory used for some other purpose.
              Returns a copy of the specified symbol  name  to  a
              user-supplied buffer. If the name string, including
              its null  terminator,  exceeds  buflen  characters,
              st_sym_name_copy() truncates it, returning the number
 of truncated characters in truncated.  For  C++
              names,  this  function  is useful because it avoids
              returning dynamically allocated buffers  that  must
              later  be  released by calls to st_free_name(). For
              non-C++ names, however, it involves more  overhead.
              Returns the symbol handle of the enclosing block or
              procedure for the specified symbol.  This  function
              is helpful when you are processing local symbols or
              alternate entries.  Return the ending symbol handle
              of the block or procedure, respectively, containing
              the specified symbol.  Returns  the  symbol  handle
              for  the named external symbol.  Returns the symbol
              corresponding to the specified frame offset in  the
              given  procedure.  The frame offset must be a positive
 number and a relative offset from the  virtual
              frame  pointer for a procedure. Frequently, but not
              always, this is the stack pointer. For example,  if
              an  instruction  references  a  local variable with
              20($sp), then the frame offset  would  be  20.  The
              symbol that st_frame_offset_to_sym() returns may be
              a parameter to the procedure or a local symbol. The
              st_frame_offset_to_sym()  function sets byte-offset
              to the offset (always greater  or  equal  to  zero)
              into  the variable to which the frame_offset corresponds.
 The byte_offset from a  variable  may  span
              compiler  temporaries  on  the stack. To check this
              case, use st_sym_size() to obtain the size  of  the
              returned  symbol and compare it to the byte offset.
              Returns the size in bytes of the specified  symbol.
              These  routines are Boolean functions that return a
              flag that indicates whether a given symbol  belongs
              to each category. Note that only global symbols can
              be weak. If st_is_sym_weak() is passed a local symbol
 handle, it returns ST_E_INVALID_SYM to indicate
              that  the  given  symbol  cannot  be   weak.    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.

              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. Valid name-demangling
       flags       are       defined        in
              /usr/include/cmplrs/demangle_string.h.

RETURN VALUES    [Toc]    [Back]

       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.

FILES    [Toc]    [Back]

       Header  file  that  contains  all definitions and function
       prototypes for libst.a functions Header file that controls
       name-demangling  operations  for  C++  objects Header file
       that defines symbol types Header file that defines  symbol
       classes

SEE ALSO    [Toc]    [Back]

      
      
       Commands: atom(1)

       Functions:       libst_intro(3),       st_addr_to_file(3),
       st_file_lang(3),     st_obj_calls(3),      st_obj_open(3),
       st_obj_file_start(3),                st_objlist_append(3),
       st_proc_addr(3)



                                                  st_sym_value(3)
[ Back ]
 Similar pages
Name OS Title
st_pt_next Tru64 access and modify optimization symbol table information in an object file
st_pt_start Tru64 access and modify optimization symbol table information in an object file
st_obj_proc_pp Tru64 access and modify optimization symbol table information in an object file
st_pp_next Tru64 access and modify optimization symbol table information in an object file
st_obj_proc_has_ppod Tru64 access and modify optimization symbol table information in an object file
st_pt_setup Tru64 access and modify optimization symbol table information in an object file
st_pp_add Tru64 access and modify optimization symbol table information in an object file
st_pt_layout Tru64 access and modify optimization symbol table information in an object file
st_pt_cleanup Tru64 access and modify optimization symbol table information in an object file
st_proc_pp Tru64 access and modify optimization symbol table information in an object file
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service