GDB (xrefs)

Functions | Variables
/tmp/gdb-8.1/gdb/blockframe.c File Reference
`#include "defs.h"`
`#include "symtab.h"`
`#include "bfd.h"`
`#include "objfiles.h"`
`#include "frame.h"`
`#include "gdbcore.h"`
`#include "value.h"`
`#include "target.h"`
`#include "inferior.h"`
`#include "annotate.h"`
`#include "regcache.h"`
`#include "dummy-frame.h"`
`#include "command.h"`
`#include "gdbcmd.h"`
`#include "block.h"`
`#include "inline-frame.h"`

Go to the source code of this file.

## Functions
const struct block * | get_frame_block (struct frame_info *frame, CORE_ADDR *addr_in_block)
CORE_ADDR | get_pc_function_start (CORE_ADDR pc)
struct symbol * | get_frame_function (struct frame_info *frame)
struct symbol * | find_pc_sect_function (CORE_ADDR pc, struct obj_section *section)
struct symbol * | find_pc_function (CORE_ADDR pc)
void | clear_pc_function_cache (void)
int | find_pc_partial_function_gnu_ifunc (CORE_ADDR pc, const char **name, CORE_ADDR *address, CORE_ADDR *endaddr, int *is_gnu_ifunc_p)
int | find_pc_partial_function (CORE_ADDR pc, const char **name, CORE_ADDR *address, CORE_ADDR *endaddr)
struct frame_info * | block_innermost_frame (const struct block *block)

## Variables
static CORE_ADDR | cache_pc_function_low = 0
static CORE_ADDR | cache_pc_function_high = 0
static const char * | cache_pc_function_name = 0
static struct obj_section * | cache_pc_function_section = NULL
static int | cache_pc_function_is_gnu_ifunc = 0

## Function Documentation

## ◆ block_innermost_frame()

struct frame_info* block_innermost_frame | ( | const struct block * | block | ) |

Definition at line 331 of file blockframe.c.

References contained_in(), get_current_frame(), get_frame_block(), get_prev_frame(), and get_selected_frame_if_set().

Referenced by bpstat_check_breakpoint_conditions(), get_hosting_frame(), and watch_command_1().

## ◆ clear_pc_function_cache()

void clear_pc_function_cache | ( | void |  | ) |

Definition at line 167 of file blockframe.c.

References cache_pc_function_high, cache_pc_function_is_gnu_ifunc, cache_pc_function_low, cache_pc_function_name, and cache_pc_function_section.

Referenced by clear_symtab_users(), and objfile::~objfile().

## ◆ find_pc_function()

struct symbol* find_pc_function | ( | CORE_ADDR | pc | ) |

Definition at line 150 of file blockframe.c.

References find_pc_mapped_section(), and find_pc_sect_function().

Referenced by bpfinishpy_init(), edit_command(), evaluate_subexp_standard(), find_function_alias_target(), find_function_return_type(), finish_command(), frv_fdpic_find_canonical_descriptor(), ftrace_update_function(), func_addr_to_tail_call_list(), gdbscm_frame_function(), get_function_name(), jump_command(), list_command(), print_stop_location(), process_event_stop_test(), set_step_frame(), set_traceframe_context(), sparc32_dwarf2_struct_return_p(), sparc32_frame_cache(), and until_next_command().

## ◆ find_pc_partial_function()

int find_pc_partial_function | ( | CORE_ADDR | pc,
|  | const char ** | name,
|  | CORE_ADDR * | address,
|  | CORE_ADDR * | endaddr
| ) |  |

Definition at line 320 of file blockframe.c.

References find_pc_partial_function_gnu_ifunc(), and name.

Referenced by aarch64_scan_prologue(), aarch64_skip_prologue(), after_prologue(), alpha_sigtramp_frame_sniffer(), amd64_linux_sigtramp_p(), amd64_skip_prologue(), amd64_sol2_sigtramp_p(), amd64_windows_skip_prologue(), amd64nbsd_sigtramp_p(), amd64obsd_sigtramp_p(), amd64obsd_trapframe_cache(), amd64obsd_trapframe_sniffer(), arc_make_frame_cache(), arc_skip_prologue(), arm_adjust_breakpoint_address(), arm_exidx_unwind_sniffer(), arm_scan_prologue(), arm_skip_prologue(), arm_skip_stub(), arm_stack_frame_destroyed_p_1(), arm_stub_unwind_sniffer(), avr_skip_prologue(), BP_MANIPULATION(), call0_analyze_prologue(), call0_frame_cache(), cris_skip_prologue(), disassemble_command(), disassemble_current_function(), elf_gnu_ifunc_resolve_addr(), fill_in_stop_func(), find_func_descr(), find_proc_desc(), finish_backward(), frv_linux_sigtramp_frame_sniffer(), frv_skip_prologue(), ft32_skip_prologue(), func_command(), h8300_skip_prologue(), handle_exception(), i386_in_stack_tramp_p(), i386_linux_dwarf_signal_frame_p(), i386_linux_sigtramp_p(), i386_sigtramp_p(), i386_skip_prologue(), i386_sol2_sigtramp_p(), i386_svr4_sigtramp_p(), i386nto_sigtramp_p(), i386obsd_sigtramp_p(), i386obsd_trapframe_cache(), i386obsd_trapframe_sniffer(), iq2000_frame_cache(), iq2000_skip_prologue(), lm32_skip_prologue(), m32c_skip_prologue(), m32c_skip_trampoline_code(), m32c_virtual_frame_pointer(), m32r_linux_sigtramp_frame_sniffer(), m32r_skip_prologue(), m68hc11_skip_prologue(), m88k_skip_prologue(), mep_skip_prologue(), mi_cmd_disassemble(), microblaze_analyze_prologue(), microblaze_skip_prologue(), micromips_stack_frame_destroyed_p(), mips16_stack_frame_destroyed_p(), mips32_stack_frame_destroyed_p(), mips_adjust_breakpoint_address(), mips_in_frame_stub(), mips_in_return_stub(), mips_insn16_frame_cache(), mips_insn32_frame_cache(), mips_micro_frame_cache(), mips_sde_frame_cache(), mips_sde_frame_sniffer(), mips_skip_mips16_trampoline_code(), mips_skip_prologue(), mips_stub_frame_cache(), mn10300_skip_prologue(), moxie_skip_prologue(), msp430_skip_prologue(), mt_skip_prologue(), nds32_skip_prologue(), nios2_skip_prologue(), nios2_stack_frame_destroyed_p(), nios2_stub_frame_cache(), or1k_frame_cache(), or1k_skip_prologue(), ppcfbsd_sigtramp_frame_sniffer(), ppcobsd_sigtramp_frame_sniffer(), prepare_one_step(), refine_prologue_limit(), rl78_skip_prologue(), rs6000_in_function_epilogue_frame_p(), rs6000_skip_prologue(), rx_frame_type(), rx_skip_prologue(), s390_skip_prologue(), score_make_prologue_cache(), sh_skip_prologue(), sh_stack_frame_destroyed_p(), skip_function_command(), skip_prologue_using_lineinfo(), skip_prologue_using_sal(), sparc32_skip_prologue(), sparc32_sol2_sigtramp_frame_sniffer(), sparc32nbsd_sigcontext_frame_sniffer(), sparc32obsd_sigtramp_frame_sniffer(), sparc64_skip_prologue(), sparc64_sol2_sigtramp_frame_sniffer(), sparc64fbsd_sigtramp_frame_sniffer(), sparc64nbsd_sigtramp_frame_sniffer(), sparc64obsd_sigtramp_frame_sniffer(), sparc64obsd_trapframe_sniffer(), spu_stack_frame_destroyed_p(), thumb_scan_prologue(), thumb_stack_frame_destroyed_p(), tic6x_skip_prologue(), tilegx_skip_prologue(), tilegx_stack_frame_destroyed_p(), tui_show_frame_info(), v850_skip_prologue(), xstormy16_skip_prologue(), xstormy16_stack_frame_destroyed_p(), xtensa_scan_prologue(), and xtensa_skip_prologue().

## ◆ find_pc_partial_function_gnu_ifunc()

int find_pc_partial_function_gnu_ifunc | ( | CORE_ADDR | pc,
|  | const char ** | name,
|  | CORE_ADDR * | address,
|  | CORE_ADDR * | endaddr,
|  | int * | is_gnu_ifunc_p
| ) |  |

Definition at line 191 of file blockframe.c.

References ALL_OBJFILES, BLOCK_END, BLOCK_START, BMSYMBOL_VALUE_ADDRESS, cache_pc_function_high, cache_pc_function_is_gnu_ifunc, cache_pc_function_low, cache_pc_function_name, cache_pc_function_section, find_pc_overlay(), quick_symbol_functions::find_pc_sect_compunit_symtab, find_pc_sect_function(), find_pc_section(), lookup_minimal_symbol_by_pc_section(), minimal_symbol_upper_bound(), bound_minimal_symbol::minsym, mst_text_gnu_ifunc, MSYMBOL_LINKAGE_NAME, MSYMBOL_TYPE, name, objfile::objfile(), overlay_mapped_address(), overlay_unmapped_address(), pc_in_unmapped_range(), sym_fns::qf, objfile::sf, SYMBOL_BLOCK_VALUE, SYMBOL_LINKAGE_NAME, SYMBOL_TYPE, and TYPE_GNU_IFUNC.

Referenced by find_pc_partial_function(), and set_breakpoint_location_function().

## ◆ find_pc_sect_function()

struct symbol* find_pc_sect_function | ( | CORE_ADDR | pc,
|  | struct obj_section * | section
| ) |  |

Definition at line 136 of file blockframe.c.

References block_for_pc_sect(), and block_linkage_function().

Referenced by build_address_symbolic(), find_pc_function(), find_pc_partial_function_gnu_ifunc(), print_breakpoint_location(), print_one_static_tracepoint_marker(), skip_prologue_sal(), and update_static_tracepoint().

## ◆ get_frame_block()

const struct block* get_frame_block | ( | struct frame_info * | frame,
|  | CORE_ADDR * | addr_in_block
| ) |  |

Definition at line 55 of file blockframe.c.

References block_for_pc(), block_inlined_p(), BLOCK_SUPERBLOCK, frame_inlined_callees(), gdb_assert, and get_frame_address_in_block_if_available().

Referenced by ada_add_exceptions_from_frame(), ada_read_var_value(), block_innermost_frame(), frapy_block(), frapy_read_var(), gdbpy_lookup_symbol(), gdbscm_frame_block(), gdbscm_frame_read_var(), gdbscm_lookup_symbol(), dwarf_evaluate_loc_desc::get_frame_base(), get_frame_function(), get_hosting_frame(), get_selected_block(), info_common_command(), list_args_or_locals(), print_frame_local_vars(), value_of_this(), and varobj_create().

## ◆ get_frame_function()

struct symbol* get_frame_function | ( | struct frame_info * | frame | ) |

Definition at line 118 of file blockframe.c.

References BLOCK_FUNCTION, BLOCK_SUPERBLOCK, and get_frame_block().

Referenced by check_exception_resume(), find_frame_funname(), find_frame_sal(), follow_static_link(), info_frame_command(), inline_frame_this_id(), jump_command(), print_frame_arg_vars(), return_command(), and watchpoint_check().

## ◆ get_pc_function_start()

CORE_ADDR get_pc_function_start | ( | CORE_ADDR | pc | ) |

Definition at line 86 of file blockframe.c.

References block_for_pc(), block_linkage_function(), BLOCK_START, BMSYMBOL_VALUE_ADDRESS, find_pc_section(), lookup_minimal_symbol_by_pc(), bound_minimal_symbol::minsym, and SYMBOL_BLOCK_VALUE.

Referenced by collection_list::add_local_symbols(), alpha_heuristic_proc_start(), BP_MANIPULATION(), call_site_find_chain_1(), ftrace_update_function(), get_frame_func_if_available(), refine_prologue_limit(), rs6000_frame_cache(), and s390_prologue_frame_unwind_cache().

## Variable Documentation

## ◆ cache_pc_function_high

CORE_ADDR cache_pc_function_high = 0
| static

Definition at line 159 of file blockframe.c.

Referenced by clear_pc_function_cache(), and find_pc_partial_function_gnu_ifunc().

## ◆ cache_pc_function_is_gnu_ifunc

int cache_pc_function_is_gnu_ifunc = 0
| static

Definition at line 162 of file blockframe.c.

Referenced by clear_pc_function_cache(), and find_pc_partial_function_gnu_ifunc().

## ◆ cache_pc_function_low

CORE_ADDR cache_pc_function_low = 0
| static

Definition at line 158 of file blockframe.c.

Referenced by clear_pc_function_cache(), and find_pc_partial_function_gnu_ifunc().

## ◆ cache_pc_function_name

const char* cache_pc_function_name = 0
| static

Definition at line 160 of file blockframe.c.

Referenced by clear_pc_function_cache(), and find_pc_partial_function_gnu_ifunc().

## ◆ cache_pc_function_section

struct obj_section* cache_pc_function_section = NULL
| static

Definition at line 161 of file blockframe.c.

Referenced by clear_pc_function_cache(), and find_pc_partial_function_gnu_ifunc().