[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.9 Symbol table functions

The `BFD_JUMP_TABLE_SYMBOLS' macro is used for functions which deal with symbols.

`_get_symtab_upper_bound'
Return a sensible upper bound on the amount of memory which will be required to read the symbol table. In practice most targets return the amount of memory required to hold `asymbol' pointers for all the symbols plus a trailing `NULL' entry, and store the actual symbol information in BFD private data. This is called via `bfd_get_symtab_upper_bound'. The corresponding field in the target vector is named `_bfd_get_symtab_upper_bound'.

`_canonicalize_symtab'
Read in the symbol table. This is called via `bfd_canonicalize_symtab'. The corresponding field in the target vector is named `_bfd_canonicalize_symtab'.

`_make_empty_symbol'
Create an empty symbol for the BFD. This is needed because most targets store extra information with each symbol by allocating a structure larger than an `asymbol' and storing the extra information at the end. This function will allocate the right amount of memory, and return what looks like a pointer to an empty `asymbol'. This is called via `bfd_make_empty_symbol'. The corresponding field in the target vector is named `_bfd_make_empty_symbol'.

`_print_symbol'
Print information about the symbol. This is called via `bfd_print_symbol'. One of the arguments indicates what sort of information should be printed:

`bfd_print_symbol_name'
Just print the symbol name.
`bfd_print_symbol_more'
Print the symbol name and some interesting flags. I don't think anything actually uses this.
`bfd_print_symbol_all'
Print all information about the symbol. This is used by `objdump' when run with the `-t' option.
The corresponding field in the target vector is named `_bfd_print_symbol'.

`_get_symbol_info'
Return a standard set of information about the symbol. This is called via `bfd_symbol_info'. The corresponding field in the target vector is named `_bfd_get_symbol_info'.

`_bfd_is_local_label_name'
Return whether the given string would normally represent the name of a local label. This is called via `bfd_is_local_label' and `bfd_is_local_label_name'. Local labels are normally discarded by the assembler. In the linker, this defines the difference between the `-x' and `-X' options.

`_get_lineno'
Return line number information for a symbol. This is only meaningful for a COFF target. This is called when writing out COFF line numbers.

`_find_nearest_line'
Given an address within a section, use the debugging information to find the matching file name, function name, and line number, if any. This is called via `bfd_find_nearest_line'. The corresponding field in the target vector is named `_bfd_find_nearest_line'.

`_bfd_make_debug_symbol'
Make a debugging symbol. This is only meaningful for a COFF target, where it simply returns a symbol which will be placed in the `N_DEBUG' section when it is written out. This is called via `bfd_make_debug_symbol'.

`_read_minisymbols'
Minisymbols are used to reduce the memory requirements of programs like `nm'. A minisymbol is a cookie pointing to internal symbol information which the caller can use to extract complete symbol information. This permits BFD to not convert all the symbols into generic form, but to instead convert them one at a time. This is called via `bfd_read_minisymbols'. Most targets do not implement this, and just use generic support which is based on using standard `asymbol' structures.

`_minisymbol_to_symbol'
Convert a minisymbol to a standard `asymbol'. This is called via `bfd_minisymbol_to_symbol'.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

This document was generated by system on December, 2 2004 using texi2html