Previous: typedef asymbol, Up: Symbols


2.7.5 Symbol handling functions

2.7.5.1 bfd_get_symtab_upper_bound

Description
Return the number of bytes required to store a vector of pointers to asymbols for all the symbols in the BFD abfd, including a terminal NULL pointer. If there are no symbols in the BFD, then return 0. If an error occurs, return -1.

     #define bfd_get_symtab_upper_bound(abfd) \
          BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
     

2.7.5.2 bfd_is_local_label

Synopsis

     bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym);

Description
Return TRUE if the given symbol sym in the BFD abfd is a compiler generated local label, else return FALSE.

2.7.5.3 bfd_is_local_label_name

Synopsis

     bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name);

Description
Return TRUE if a symbol with the name name in the BFD abfd is a compiler generated local label, else return FALSE. This just checks whether the name has the form of a local label.

     #define bfd_is_local_label_name(abfd, name) \
       BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
     

2.7.5.4 bfd_is_target_special_symbol

Synopsis

     bfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym);

Description
Return TRUE iff a symbol sym in the BFD abfd is something special to the particular target represented by the BFD. Such symbols should normally not be mentioned to the user.

     #define bfd_is_target_special_symbol(abfd, sym) \
       BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
     

2.7.5.5 bfd_canonicalize_symtab

Description
Read the symbols from the BFD abfd, and fills in the vector location with pointers to the symbols and a trailing NULL. Return the actual number of symbol pointers, not including the NULL.

     #define bfd_canonicalize_symtab(abfd, location) \
       BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
     

2.7.5.6 bfd_set_symtab

Synopsis

     bfd_boolean bfd_set_symtab
        (bfd *abfd, asymbol **location, unsigned int count);

Description
Arrange that when the output BFD abfd is closed, the table location of count pointers to symbols will be written.

2.7.5.7 bfd_print_symbol_vandf

Synopsis

     void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol);

Description
Print the value and flags of the symbol supplied to the stream file.

2.7.5.8 bfd_make_empty_symbol

Description
Create a new asymbol structure for the BFD abfd and return a pointer to it.

This routine is necessary because each back end has private information surrounding the asymbol. Building your own asymbol and pointing to it will not create the private information, and will cause problems later on.

     #define bfd_make_empty_symbol(abfd) \
       BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
     

2.7.5.9 _bfd_generic_make_empty_symbol

Synopsis

     asymbol *_bfd_generic_make_empty_symbol (bfd *);

Description
Create a new asymbol structure for the BFD abfd and return a pointer to it. Used by core file routines, binary back-end and anywhere else where no private info is needed.

2.7.5.10 bfd_make_debug_symbol

Description
Create a new asymbol structure for the BFD abfd, to be used as a debugging symbol. Further details of its use have yet to be worked out.

     #define bfd_make_debug_symbol(abfd,ptr,size) \
       BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
     

2.7.5.11 bfd_decode_symclass

Description
Return a character corresponding to the symbol class of symbol, or '?' for an unknown class.

Synopsis

     int bfd_decode_symclass (asymbol *symbol);

2.7.5.12 bfd_is_undefined_symclass

Description
Returns non-zero if the class symbol returned by bfd_decode_symclass represents an undefined symbol. Returns zero otherwise.

Synopsis

     bfd_boolean bfd_is_undefined_symclass (int symclass);

2.7.5.13 bfd_symbol_info

Description
Fill in the basic info about symbol that nm needs. Additional info may be added by the back-ends after calling this function.

Synopsis

     void bfd_symbol_info (asymbol *symbol, symbol_info *ret);

2.7.5.14 bfd_copy_private_symbol_data

Synopsis

     bfd_boolean bfd_copy_private_symbol_data
        (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);

Description
Copy private symbol information from isym in the BFD ibfd to the symbol osym in the BFD obfd. Return TRUE on success, FALSE on error. Possible error returns are:

     #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
       BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
                 (ibfd, isymbol, obfd, osymbol))