📄 syms.texi
字号:
#define BSF_FILE 0x4000 /* Symbol is from dynamic linking information. */#define BSF_DYNAMIC 0x8000 /* The symbol denotes a data object. Used in ELF, and perhaps others someday. */#define BSF_OBJECT 0x10000 /* This symbol is a debugging symbol. The value is the offset into the section of the data. BSF_DEBUGGING should be set as well. */#define BSF_DEBUGGING_RELOC 0x20000 /* This symbol is thread local. Used in ELF. */#define BSF_THREAD_LOCAL 0x40000 flagword flags; /* A pointer to the section to which this symbol is relative. This will always be non NULL, there are special sections for undefined and absolute symbols. */ struct bfd_section *section; /* Back end special data. */ union @{ void *p; bfd_vma i; @} udata;@}asymbol;@end example@node symbol handling functions, , typedef asymbol, Symbols@subsection Symbol handling functions@findex bfd_get_symtab_upper_bound@subsubsection @code{bfd_get_symtab_upper_bound}@strong{Description}@*Return the number of bytes required to store a vector of pointersto @code{asymbols} for all the symbols in the BFD @var{abfd},including a terminal NULL pointer. If there are no symbols inthe BFD, then return 0. If an error occurs, return -1.@example#define bfd_get_symtab_upper_bound(abfd) \ BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))@end example@findex bfd_is_local_label@subsubsection @code{bfd_is_local_label}@strong{Synopsis}@examplebfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym);@end example@strong{Description}@*Return TRUE if the given symbol @var{sym} in the BFD @var{abfd} isa compiler generated local label, else return FALSE.@findex bfd_is_local_label_name@subsubsection @code{bfd_is_local_label_name}@strong{Synopsis}@examplebfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name);@end example@strong{Description}@*Return TRUE if a symbol with the name @var{name} in the BFD@var{abfd} is a compiler generated local label, else returnFALSE. This just checks whether the name has the form of alocal label.@example#define bfd_is_local_label_name(abfd, name) \ BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))@end example@findex bfd_is_target_special_symbol@subsubsection @code{bfd_is_target_special_symbol}@strong{Synopsis}@examplebfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym);@end example@strong{Description}@*Return TRUE iff a symbol @var{sym} in the BFD @var{abfd} is somethingspecial to the particular target represented by the BFD. Such symbolsshould normally not be mentioned to the user.@example#define bfd_is_target_special_symbol(abfd, sym) \ BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))@end example@findex bfd_canonicalize_symtab@subsubsection @code{bfd_canonicalize_symtab}@strong{Description}@*Read the symbols from the BFD @var{abfd}, and fills inthe vector @var{location} with pointers to the symbols anda trailing NULL.Return the actual number of symbol pointers, notincluding the NULL.@example#define bfd_canonicalize_symtab(abfd, location) \ BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))@end example@findex bfd_set_symtab@subsubsection @code{bfd_set_symtab}@strong{Synopsis}@examplebfd_boolean bfd_set_symtab (bfd *abfd, asymbol **location, unsigned int count);@end example@strong{Description}@*Arrange that when the output BFD @var{abfd} is closed,the table @var{location} of @var{count} pointers to symbolswill be written.@findex bfd_print_symbol_vandf@subsubsection @code{bfd_print_symbol_vandf}@strong{Synopsis}@examplevoid bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol);@end example@strong{Description}@*Print the value and flags of the @var{symbol} supplied to thestream @var{file}.@findex bfd_make_empty_symbol@subsubsection @code{bfd_make_empty_symbol}@strong{Description}@*Create a new @code{asymbol} structure for the BFD @var{abfd}and return a pointer to it.This routine is necessary because each back end has privateinformation surrounding the @code{asymbol}. Building your own@code{asymbol} and pointing to it will not create the privateinformation, and will cause problems later on.@example#define bfd_make_empty_symbol(abfd) \ BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))@end example@findex _bfd_generic_make_empty_symbol@subsubsection @code{_bfd_generic_make_empty_symbol}@strong{Synopsis}@exampleasymbol *_bfd_generic_make_empty_symbol (bfd *);@end example@strong{Description}@*Create a new @code{asymbol} structure for the BFD @var{abfd}and return a pointer to it. Used by core file routines,binary back-end and anywhere else where no private infois needed.@findex bfd_make_debug_symbol@subsubsection @code{bfd_make_debug_symbol}@strong{Description}@*Create a new @code{asymbol} structure for the BFD @var{abfd},to be used as a debugging symbol. Further details of its use haveyet to be worked out.@example#define bfd_make_debug_symbol(abfd,ptr,size) \ BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))@end example@findex bfd_decode_symclass@subsubsection @code{bfd_decode_symclass}@strong{Description}@*Return a character corresponding to the symbolclass of @var{symbol}, or '?' for an unknown class.@strong{Synopsis}@exampleint bfd_decode_symclass (asymbol *symbol);@end example@findex bfd_is_undefined_symclass@subsubsection @code{bfd_is_undefined_symclass}@strong{Description}@*Returns non-zero if the class symbol returned bybfd_decode_symclass represents an undefined symbol.Returns zero otherwise.@strong{Synopsis}@examplebfd_boolean bfd_is_undefined_symclass (int symclass);@end example@findex bfd_symbol_info@subsubsection @code{bfd_symbol_info}@strong{Description}@*Fill in the basic info about symbol that nm needs.Additional info may be added by the back-ends aftercalling this function.@strong{Synopsis}@examplevoid bfd_symbol_info (asymbol *symbol, symbol_info *ret);@end example@findex bfd_copy_private_symbol_data@subsubsection @code{bfd_copy_private_symbol_data}@strong{Synopsis}@examplebfd_boolean bfd_copy_private_symbol_data (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);@end example@strong{Description}@*Copy private symbol information from @var{isym} in the BFD@var{ibfd} to the symbol @var{osym} in the BFD @var{obfd}.Return @code{TRUE} on success, @code{FALSE} on error. Possible errorreturns are:@itemize @bullet@item@code{bfd_error_no_memory} -Not enough memory exists to create private data for @var{osec}.@end itemize@example#define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \ BFD_SEND (obfd, _bfd_copy_private_symbol_data, \ (ibfd, isymbol, obfd, osymbol))@end example
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -