#include "tconfig.h"#include "tsystem.h"#include "dwarf2.h"#include "unwind.h"#include "unwind-pe.h"#include "unwind-dw2-fde.h"#include "gthr.h"


Go to the source code of this file.
| #define init_object_mutex_once | ( | ) |
Definition at line 69 of file unwind-dw2-fde.c.
Referenced by __deregister_frame_info_bases(), __register_frame_info_bases(), __register_frame_info_table_bases(), and _Unwind_Find_FDE().
| #define NO_BASE_OF_ENCODED_VALUE |
Definition at line 36 of file unwind-dw2-fde.c.
| typedef int(* fde_compare_t)(struct object *, fde *, fde *) |
Definition at line 368 of file unwind-dw2-fde.c.
Definition at line 227 of file unwind-dw2-fde.c.
Definition at line 221 of file unwind-dw2-fde.c.
Referenced by __deinit_environment(), __deregister_frame(), and __frv_deregister_eh().
Definition at line 171 of file unwind-dw2-fde.c.
Referenced by __deregister_frame_info(), and live_image_destructor().
Definition at line 108 of file unwind-dw2-fde.c.
Definition at line 102 of file unwind-dw2-fde.c.
Referenced by __frv_register_eh(), __init_environment(), and __register_frame().
Definition at line 152 of file unwind-dw2-fde.c.
| fde* _Unwind_Find_FDE | ( | void * | pc, | |
| struct dwarf_eh_bases * | bases | |||
| ) |
Definition at line 985 of file unwind-dw2-fde.c.
References __gthread_mutex_lock, __gthread_mutex_unlock, object::b, base_from_object(), dwarf_eh_bases::dbase, object::dbase, object::encoding, f, dwarf_eh_bases::func, get_fde_encoding(), init_object_mutex_once, object::next, NULL, p, dwarf_fde::pc_begin, object::pc_begin, read_encoded_value_with_base(), object::s, search_object(), dwarf_eh_bases::tbase, and object::tbase.
Definition at line 667 of file unwind-dw2-fde.c.
References object::b, base, base_from_object(), dwarf_fde::CIE_delta, DW_EH_PE_absptr, fde_insert(), get_cie(), get_cie_encoding(), L, last_fde(), next_fde(), dwarf_fde::pc_begin, read_encoded_value_with_base(), object::s, and size_of_encoded_value().
Referenced by init_object().
Definition at line 239 of file unwind-dw2-fde.c.
References abort, object::dbase, DW_EH_PE_absptr, DW_EH_PE_aligned, DW_EH_PE_datarel, DW_EH_PE_omit, DW_EH_PE_pcrel, DW_EH_PE_textrel, and object::tbase.
Referenced by _Unwind_Find_FDE(), add_fdes(), binary_search_mixed_encoding_fdes(), binary_search_single_encoding_fdes(), classify_object_over_fdes(), examine_objects(), fde_mixed_encoding_compare(), fde_single_encoding_compare(), and linear_search_fdes().
Definition at line 910 of file unwind-dw2-fde.c.
References fde_vector::array, base_from_object(), fde_vector::count, f, get_fde_encoding(), i, lo, NULL, p, dwarf_fde::pc_begin, read_encoded_value_with_base(), object::sort, object::u, and vec.
Referenced by search_object().
Definition at line 880 of file unwind-dw2-fde.c.
References fde_vector::array, object::b, base, base_from_object(), fde_vector::count, f, i, lo, NULL, p, dwarf_fde::pc_begin, read_encoded_value_with_base(), object::s, object::sort, object::u, and vec.
Referenced by search_object().
Definition at line 853 of file unwind-dw2-fde.c.
References fde_vector::array, fde_vector::count, f, i, lo, NULL, dwarf_fde::pc_begin, object::sort, object::u, and vec.
Referenced by search_object().
Definition at line 612 of file unwind-dw2-fde.c.
References object::b, base, base_from_object(), dwarf_fde::CIE_delta, count, DW_EH_PE_absptr, DW_EH_PE_omit, get_cie(), get_cie_encoding(), L, last_fde(), next_fde(), dwarf_fde::pc_begin, object::pc_begin, read_encoded_value_with_base(), object::s, and size_of_encoded_value().
Referenced by init_object().
| static void end_fde_sort | ( | struct object * | ob, | |
| struct fde_accumulator * | accu, | |||
| size_t | count | |||
| ) | [inline, static] |
Definition at line 575 of file unwind-dw2-fde.c.
References abort, object::b, fde_vector::count, DW_EH_PE_absptr, fde_accumulator::erratic, fde_merge(), fde_mixed_encoding_compare(), fde_single_encoding_compare(), fde_split(), fde_unencoded_compare(), frame_heapsort(), free(), fde_accumulator::linear, and object::s.
Referenced by init_object().
| static void fde_insert | ( | struct fde_accumulator * | accu, | |
| fde * | this_fde | |||
| ) | [inline, static] |
Definition at line 408 of file unwind-dw2-fde.c.
References fde_vector::array, fde_vector::count, and fde_accumulator::linear.
Referenced by add_fdes().
| static void fde_merge | ( | struct object * | ob, | |
| fde_compare_t | fde_compare, | |||
| struct fde_vector * | v1, | |||
| struct fde_vector * | v2 | |||
| ) | [inline, static] |
Definition at line 537 of file unwind-dw2-fde.c.
References fde_vector::array, fde_vector::count, i1, i2, and NULL.
Referenced by end_fde_sort().
Definition at line 348 of file unwind-dw2-fde.c.
References base_from_object(), get_fde_encoding(), dwarf_fde::pc_begin, and read_encoded_value_with_base().
Referenced by end_fde_sort().
Definition at line 332 of file unwind-dw2-fde.c.
References object::b, base, base_from_object(), dwarf_fde::pc_begin, read_encoded_value_with_base(), and object::s.
Referenced by end_fde_sort().
| static void fde_split | ( | struct object * | ob, | |
| fde_compare_t | fde_compare, | |||
| struct fde_vector * | linear, | |||
| struct fde_vector * | erratic | |||
| ) | [inline, static] |
Definition at line 427 of file unwind-dw2-fde.c.
References abort, fde_vector::array, count, fde_vector::count, i, and NULL.
Referenced by end_fde_sort().
| static int fde_unencoded_compare | ( | struct object *ob | __attribute__(unused), | |
| fde * | x, | |||
| fde * | y | |||
| ) | [static] |
Definition at line 318 of file unwind-dw2-fde.c.
References dwarf_fde::pc_begin.
Referenced by end_fde_sort().
| static void frame_heapsort | ( | struct object * | ob, | |
| fde_compare_t | fde_compare, | |||
| struct fde_vector * | erratic | |||
| ) | [static] |
Definition at line 472 of file unwind-dw2-fde.c.
References a, fde_vector::array, fde_vector::count, i, n, and SWAP.
Referenced by end_fde_sort().
Definition at line 263 of file unwind-dw2-fde.c.
References dwarf_cie::augmentation, DW_EH_PE_absptr, p, read_encoded_value_with_base(), read_sleb128(), read_uleb128(), and strlen().
Referenced by add_fdes(), classify_object_over_fdes(), get_fde_encoding(), and linear_search_fdes().
Definition at line 305 of file unwind-dw2-fde.c.
References get_cie(), and get_cie_encoding().
Referenced by _Unwind_Find_FDE(), binary_search_mixed_encoding_fdes(), examine_objects(), and fde_mixed_encoding_compare().
Definition at line 730 of file unwind-dw2-fde.c.
References add_fdes(), object::array, object::b, classify_object_over_fdes(), count, end_fde_sort(), fde_accumulator::linear, fde_vector::orig_data, p, object::s, object::single, object::sort, start_fde_sort(), and object::u.
Referenced by search_object().
Definition at line 784 of file unwind-dw2-fde.c.
References object::b, base, base_from_object(), dwarf_fde::CIE_delta, DW_EH_PE_absptr, get_cie(), get_cie_encoding(), L, last_fde(), next_fde(), NULL, p, dwarf_fde::pc_begin, read_encoded_value_with_base(), object::s, and size_of_encoded_value().
Referenced by search_object().
Definition at line 941 of file unwind-dw2-fde.c.
References object::array, object::b, binary_search_mixed_encoding_fdes(), binary_search_single_encoding_fdes(), binary_search_unencoded_fdes(), DW_EH_PE_absptr, f, init_object(), linear_search_fdes(), NULL, p, object::s, object::single, and object::u.
Referenced by _Unwind_Find_FDE(), and examine_objects().
| static int start_fde_sort | ( | struct fde_accumulator * | accu, | |
| size_t | count | |||
| ) | [inline, static] |
Definition at line 389 of file unwind-dw2-fde.c.
References fde_vector::count, fde_accumulator::erratic, fde_accumulator::linear, malloc, and size.
Referenced by init_object().
__gthread_mutex_t object_mutex = __GTHREAD_MUTEX_INIT [static] |
Definition at line 50 of file unwind-dw2-fde.c.
struct object* seen_objects [static] |
Definition at line 47 of file unwind-dw2-fde.c.
Referenced by _Unwind_Find_FDE(), examine_objects(), and live_image_destructor().
struct object* unseen_objects [static] |
Definition at line 46 of file unwind-dw2-fde.c.
Referenced by _Unwind_Find_FDE(), examine_objects(), and live_image_destructor().
1.5.6