⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bfdt.texi

📁 这个是LINUX下的GDB调度工具的源码
💻 TEXI
📖 第 1 页 / 共 2 页
字号:
@examplebfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags);@end example@strong{Description}@*Set the flag word in the BFD @var{abfd} to the value @var{flags}.Possible errors are:@itemize @bullet@item@code{bfd_error_wrong_format} - The target bfd was not of object format.@item@code{bfd_error_invalid_operation} - The target bfd was open for reading.@item@code{bfd_error_invalid_operation} -The flag word contained a bit which was not applicable to thetype of file.  E.g., an attempt was made to set the @code{D_PAGED} biton a BFD format which does not support demand paging.@end itemize@findex bfd_get_arch_size@subsubsection @code{bfd_get_arch_size}@strong{Synopsis}@exampleint bfd_get_arch_size (bfd *abfd);@end example@strong{Description}@*Returns the architecture address size, in bits, as determinedby the object file's format.  For ELF, this information isincluded in the header.@strong{Returns}@*Returns the arch size in bits if known, @code{-1} otherwise.@findex bfd_get_sign_extend_vma@subsubsection @code{bfd_get_sign_extend_vma}@strong{Synopsis}@exampleint bfd_get_sign_extend_vma (bfd *abfd);@end example@strong{Description}@*Indicates if the target architecture "naturally" sign extendsan address.  Some architectures implicitly sign extend addressvalues when they are converted to types larger than the sizeof an address.  For instance, bfd_get_start_address() willreturn an address sign extended to fill a bfd_vma when this isthe case.@strong{Returns}@*Returns @code{1} if the target architecture is known to signextend addresses, @code{0} if the target architecture is known tonot sign extend addresses, and @code{-1} otherwise.@findex bfd_set_start_address@subsubsection @code{bfd_set_start_address}@strong{Synopsis}@examplebfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma);@end example@strong{Description}@*Make @var{vma} the entry point of output BFD @var{abfd}.@strong{Returns}@*Returns @code{TRUE} on success, @code{FALSE} otherwise.@findex bfd_get_gp_size@subsubsection @code{bfd_get_gp_size}@strong{Synopsis}@exampleunsigned int bfd_get_gp_size (bfd *abfd);@end example@strong{Description}@*Return the maximum size of objects to be optimized using the GPregister under MIPS ECOFF.  This is typically set by the @code{-G}argument to the compiler, assembler or linker.@findex bfd_set_gp_size@subsubsection @code{bfd_set_gp_size}@strong{Synopsis}@examplevoid bfd_set_gp_size (bfd *abfd, unsigned int i);@end example@strong{Description}@*Set the maximum size of objects to be optimized using the GPregister under ECOFF or MIPS ELF.  This is typically set bythe @code{-G} argument to the compiler, assembler or linker.@findex bfd_scan_vma@subsubsection @code{bfd_scan_vma}@strong{Synopsis}@examplebfd_vma bfd_scan_vma (const char *string, const char **end, int base);@end example@strong{Description}@*Convert, like @code{strtoul}, a numerical expression@var{string} into a @code{bfd_vma} integer, and return that integer.(Though without as many bells and whistles as @code{strtoul}.)The expression is assumed to be unsigned (i.e., positive).If given a @var{base}, it is used as the base for conversion.A base of 0 causes the function to interpret the stringin hex if a leading "0x" or "0X" is found, otherwisein octal if a leading zero is found, otherwise in decimal.If the value would overflow, the maximum @code{bfd_vma} value isreturned.@findex bfd_copy_private_header_data@subsubsection @code{bfd_copy_private_header_data}@strong{Synopsis}@examplebfd_boolean bfd_copy_private_header_data (bfd *ibfd, bfd *obfd);@end example@strong{Description}@*Copy private BFD header information from the BFD @var{ibfd} to thethe BFD @var{obfd}.  This copies information that may requiresections to exist, but does not require symbol tables.  Return@code{true} on success, @code{false} on error.Possible error returns are:@itemize @bullet@item@code{bfd_error_no_memory} -Not enough memory exists to create private data for @var{obfd}.@end itemize@example#define bfd_copy_private_header_data(ibfd, obfd) \     BFD_SEND (obfd, _bfd_copy_private_header_data, \               (ibfd, obfd))@end example@findex bfd_copy_private_bfd_data@subsubsection @code{bfd_copy_private_bfd_data}@strong{Synopsis}@examplebfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd);@end example@strong{Description}@*Copy private BFD information from the BFD @var{ibfd} to thethe BFD @var{obfd}.  Return @code{TRUE} on success, @code{FALSE} on error.Possible error returns are:@itemize @bullet@item@code{bfd_error_no_memory} -Not enough memory exists to create private data for @var{obfd}.@end itemize@example#define bfd_copy_private_bfd_data(ibfd, obfd) \     BFD_SEND (obfd, _bfd_copy_private_bfd_data, \               (ibfd, obfd))@end example@findex bfd_merge_private_bfd_data@subsubsection @code{bfd_merge_private_bfd_data}@strong{Synopsis}@examplebfd_boolean bfd_merge_private_bfd_data (bfd *ibfd, bfd *obfd);@end example@strong{Description}@*Merge private BFD information from the BFD @var{ibfd} to thethe output file BFD @var{obfd} when linking.  Return @code{TRUE}on success, @code{FALSE} on error.  Possible error returns are:@itemize @bullet@item@code{bfd_error_no_memory} -Not enough memory exists to create private data for @var{obfd}.@end itemize@example#define bfd_merge_private_bfd_data(ibfd, obfd) \     BFD_SEND (obfd, _bfd_merge_private_bfd_data, \               (ibfd, obfd))@end example@findex bfd_set_private_flags@subsubsection @code{bfd_set_private_flags}@strong{Synopsis}@examplebfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags);@end example@strong{Description}@*Set private BFD flag information in the BFD @var{abfd}.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{obfd}.@end itemize@example#define bfd_set_private_flags(abfd, flags) \     BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))@end example@findex Other functions@subsubsection @code{Other functions}@strong{Description}@*The following functions exist but have not yet been documented.@example#define bfd_sizeof_headers(abfd, reloc) \       BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, reloc))#define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \       BFD_SEND (abfd, _bfd_find_nearest_line, \                 (abfd, sec, syms, off, file, func, line))#define bfd_debug_info_start(abfd) \       BFD_SEND (abfd, _bfd_debug_info_start, (abfd))#define bfd_debug_info_end(abfd) \       BFD_SEND (abfd, _bfd_debug_info_end, (abfd))#define bfd_debug_info_accumulate(abfd, section) \       BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section))#define bfd_stat_arch_elt(abfd, stat) \       BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat))#define bfd_update_armap_timestamp(abfd) \       BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd))#define bfd_set_arch_mach(abfd, arch, mach)\       BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach))#define bfd_relax_section(abfd, section, link_info, again) \       BFD_SEND (abfd, _bfd_relax_section, (abfd, section, link_info, again))#define bfd_gc_sections(abfd, link_info) \       BFD_SEND (abfd, _bfd_gc_sections, (abfd, link_info))#define bfd_merge_sections(abfd, link_info) \       BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info))#define bfd_is_group_section(abfd, sec) \       BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec))#define bfd_discard_group(abfd, sec) \       BFD_SEND (abfd, _bfd_discard_group, (abfd, sec))#define bfd_link_hash_table_create(abfd) \       BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd))#define bfd_link_hash_table_free(abfd, hash) \       BFD_SEND (abfd, _bfd_link_hash_table_free, (hash))#define bfd_link_add_symbols(abfd, info) \       BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info))#define bfd_link_just_syms(sec, info) \       BFD_SEND (abfd, _bfd_link_just_syms, (sec, info))#define bfd_final_link(abfd, info) \       BFD_SEND (abfd, _bfd_final_link, (abfd, info))#define bfd_free_cached_info(abfd) \       BFD_SEND (abfd, _bfd_free_cached_info, (abfd))#define bfd_get_dynamic_symtab_upper_bound(abfd) \       BFD_SEND (abfd, _bfd_get_dynamic_symtab_upper_bound, (abfd))#define bfd_print_private_bfd_data(abfd, file)\       BFD_SEND (abfd, _bfd_print_private_bfd_data, (abfd, file))#define bfd_canonicalize_dynamic_symtab(abfd, asymbols) \       BFD_SEND (abfd, _bfd_canonicalize_dynamic_symtab, (abfd, asymbols))#define bfd_get_synthetic_symtab(abfd, count, syms, dyncount, dynsyms, ret) \       BFD_SEND (abfd, _bfd_get_synthetic_symtab, (abfd, count, syms, \                                                   dyncount, dynsyms, ret))#define bfd_get_dynamic_reloc_upper_bound(abfd) \       BFD_SEND (abfd, _bfd_get_dynamic_reloc_upper_bound, (abfd))#define bfd_canonicalize_dynamic_reloc(abfd, arels, asyms) \       BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms))extern bfd_byte *bfd_get_relocated_section_contents  (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *,   bfd_boolean, asymbol **);@end example@findex bfd_alt_mach_code@subsubsection @code{bfd_alt_mach_code}@strong{Synopsis}@examplebfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative);@end example@strong{Description}@*When more than one machine code number is available for thesame machine type, this function can be used to switch betweenthe preferred one (alternative == 0) and any others.  Currently,only ELF supports this feature, with up to two alternatemachine codes.@examplestruct bfd_preserve@{  void *marker;  void *tdata;  flagword flags;  const struct bfd_arch_info *arch_info;  struct bfd_section *sections;  struct bfd_section **section_tail;  unsigned int section_count;  struct bfd_hash_table section_htab;@};@end example@findex bfd_preserve_save@subsubsection @code{bfd_preserve_save}@strong{Synopsis}@examplebfd_boolean bfd_preserve_save (bfd *, struct bfd_preserve *);@end example@strong{Description}@*When testing an object for compatibility with a particulartarget back-end, the back-end object_p function needs to setup certain fields in the bfd on successfully recognizing theobject.  This typically happens in a piecemeal fashion, withfailures possible at many points.  On failure, the bfd issupposed to be restored to its initial state, which isvirtually impossible.  However, restoring a subset of the bfdstate works in practice.  This function stores the subset andreinitializes the bfd.@findex bfd_preserve_restore@subsubsection @code{bfd_preserve_restore}@strong{Synopsis}@examplevoid bfd_preserve_restore (bfd *, struct bfd_preserve *);@end example@strong{Description}@*This function restores bfd state saved by bfd_preserve_save.If MARKER is non-NULL in struct bfd_preserve then that blockand all subsequently bfd_alloc'd memory is freed.@findex bfd_preserve_finish@subsubsection @code{bfd_preserve_finish}@strong{Synopsis}@examplevoid bfd_preserve_finish (bfd *, struct bfd_preserve *);@end example@strong{Description}@*This function should be called when the bfd state saved bybfd_preserve_save is no longer needed.  ie. when the back-endobject_p function returns with success.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -