2.7.5 Symbol handling functions

2.7.5.1 bfd_get_symtab_upper_bound

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

Function: bool bfd_is_local_label (bfd *abfd, asymbol *sym);

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

Function: bool bfd_is_local_label_name (bfd *abfd, const char *name);

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

Function: bool bfd_is_target_special_symbol (bfd *abfd, asymbol *sym);

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

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

Function: bool bfd_set_symtab (bfd *abfd, asymbol **location, unsigned int count);

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

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

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

2.7.5.8 bfd_make_empty_symbol

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

Function: asymbol *_bfd_generic_make_empty_symbol (bfd *);

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

Create a new asymbol structure for the BFD abfd, to be used as a debugging symbol.

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

2.7.5.11 bfd_decode_symclass

Function: int bfd_decode_symclass (asymbol *symbol);

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

2.7.5.12 bfd_is_undefined_symclass

Function: bool bfd_is_undefined_symclass (int symclass);

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

2.7.5.13 bfd_symbol_info

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

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

2.7.5.14 bfd_copy_private_symbol_data

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:

  • bfd_error_no_memory - Not enough memory exists to create private data for osec.
#define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
       BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
                 (ibfd, isymbol, obfd, osymbol))