GDB (xrefs)

Classes | Typedefs | Functions | Variables
/tmp/gdb-8.1/gdb/inline-frame.c File Reference
`#include "defs.h"`
`#include "inline-frame.h"`
`#include "addrmap.h"`
`#include "block.h"`
`#include "frame-unwind.h"`
`#include "inferior.h"`
`#include "regcache.h"`
`#include "symtab.h"`
`#include "vec.h"`
`#include "frame.h"`

Go to the source code of this file.

## Classes
struct | inline_state

## Typedefs
typedef struct inline_state | inline_state_s

## Functions
| DEF_VEC_O (inline_state_s)
static | VEC (inline_state_s)
static struct inline_state * | allocate_inline_frame_state (ptid_t ptid)
void | clear_inline_frame_state (ptid_t ptid)
static void | inline_frame_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
static struct value * | inline_frame_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
static int | inline_frame_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
static int | block_starting_point_at (CORE_ADDR pc, const struct block *block)
void | skip_inline_frames (ptid_t ptid)
void | step_into_inline_frame (ptid_t ptid)
int | inline_skipped_frames (ptid_t ptid)
struct symbol * | inline_skipped_symbol (ptid_t ptid)
int | frame_inlined_callees (struct frame_info *this_frame)

## Variables
const struct frame_unwind | inline_frame_unwind

## Typedef Documentation

## ◆ inline_state_s

typedef struct inline_state inline_state_s

Definition at line 58 of file inline-frame.c.

## Function Documentation

## ◆ allocate_inline_frame_state()

static struct inline_state* allocate_inline_frame_state | ( | ptid_t | ptid | ) |
| static

Definition at line 97 of file inline-frame.c.

References memset(), inline_state::ptid, and VEC_safe_push.

Referenced by skip_inline_frames().

## ◆ block_starting_point_at()

static int block_starting_point_at | ( | CORE_ADDR | pc,
|  | const struct block * | block
| ) |  |
| static

Definition at line 277 of file inline-frame.c.

References addrmap_find(), blockvector_for_pc(), BLOCKVECTOR_MAP, contained_in(), and new_block().

Referenced by skip_inline_frames().

## ◆ clear_inline_frame_state()

void clear_inline_frame_state | ( | ptid_t | ptid | ) |

Definition at line 113 of file inline-frame.c.

References minus_one_ptid, pid, inline_state::ptid, ptid_equal(), ptid_get_pid(), ptid_is_pid(), VEC(), VEC_free, VEC_iterate, VEC_safe_push, and VEC_unordered_remove.

Referenced by infrun_thread_stop_requested(), init_wait_for_inferior(), and target_resume().

## ◆ DEF_VEC_O()

DEF_VEC_O | ( | inline_state_s |  | ) |

## ◆ frame_inlined_callees()

int frame_inlined_callees | ( | struct frame_info * | this_frame | ) |

Definition at line 396 of file inline-frame.c.

References get_frame_type(), get_next_frame(), inferior_ptid, INLINE_FRAME, and inline_skipped_frames().

Referenced by find_frame_sal(), and get_frame_block().

## ◆ inline_frame_prev_register()

static struct value* inline_frame_prev_register | ( | struct frame_info * | this_frame,
|  | void ** | this_cache,
|  | int | regnum
| ) |  |
| static

Definition at line 184 of file inline-frame.c.

References get_frame_register_value(), and regnum.

## ◆ inline_frame_sniffer()

static int inline_frame_sniffer | ( | const struct frame_unwind * | self,
|  | struct frame_info * | this_frame,
|  | void ** | this_cache
| ) |  |
| static

Definition at line 205 of file inline-frame.c.

References block_for_pc(), BLOCK_FUNCTION, block_inlined_p(), BLOCK_SUPERBLOCK, gdb_assert, get_frame_address_in_block(), get_frame_type(), get_next_frame(), inferior_ptid, INLINE_FRAME, and inline_state::skipped_frames.

## ◆ inline_frame_this_id()

static void inline_frame_this_id | ( | struct frame_info * | this_frame,
|  | void ** | this_cache,
|  | struct frame_id * | this_id
| ) |  |
| static

Definition at line 148 of file inline-frame.c.

References BLOCK_START, frame_id_eq(), frame_id_p(), func, gdb_assert, get_frame_function(), get_frame_id(), get_prev_frame_always(), outer_frame_id, and SYMBOL_BLOCK_VALUE.

## ◆ inline_skipped_frames()

int inline_skipped_frames | ( | ptid_t | ptid | ) |

Definition at line 369 of file inline-frame.c.

References inline_state::ptid, and inline_state::skipped_frames.

Referenced by frame_inlined_callees(), frame_show_address(), prepare_one_step(), and process_event_stop_test().

## ◆ inline_skipped_symbol()

struct symbol* inline_skipped_symbol | ( | ptid_t | ptid | ) |

Definition at line 383 of file inline-frame.c.

References gdb_assert, inline_state::ptid, and inline_state::skipped_symbol.

Referenced by find_frame_sal().

## ◆ skip_inline_frames()

void skip_inline_frames | ( | ptid_t | ptid | ) |

Definition at line 304 of file inline-frame.c.

References allocate_inline_frame_state(), block_for_pc(), BLOCK_FUNCTION, block_inlined_p(), BLOCK_START, block_starting_point_at(), BLOCK_SUPERBLOCK, gdb_assert, get_current_frame(), get_frame_pc(), inline_state::ptid, reinit_frame_cache(), inline_state::saved_pc, inline_state::skipped_frames, and inline_state::skipped_symbol.

Referenced by handle_signal_stop().

## ◆ step_into_inline_frame()

void step_into_inline_frame | ( | ptid_t | ptid | ) |

Definition at line 356 of file inline-frame.c.

References gdb_assert, inline_state::ptid, reinit_frame_cache(), and inline_state::skipped_frames.

Referenced by prepare_one_step(), and process_event_stop_test().

## ◆ VEC()

static VEC | ( | inline_state_s |  | ) |
| static

Definition at line 61 of file inline-frame.c.

References get_thread_regcache(), inline_state::ptid, regcache::ptid(), ptid_equal(), regcache_read_pc(), inline_state::saved_pc, VEC_iterate, and VEC_unordered_remove.

Referenced by clear_inline_frame_state().

## Variable Documentation

## ◆ inline_frame_unwind

const struct frame_unwind inline_frame_unwind

Initial value:
= {
INLINE_FRAME,
default_frame_unwind_stop_reason,
inline_frame_this_id,
inline_frame_prev_register,
NULL,
inline_frame_sniffer
}
inline_frame_sniffer
static int inline_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
Definition: inline-frame.c:205
inline_frame_this_id
static void inline_frame_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
Definition: inline-frame.c:148
INLINE_FRAME
Definition: frame.h:250
default_frame_unwind_stop_reason
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:184
inline_frame_prev_register
static struct value * inline_frame_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
Definition: inline-frame.c:184

Definition at line 263 of file inline-frame.c.

Referenced by frame_unwind_init().