GDB (xrefs)
Classes | Functions | Variables
/tmp/gdb-8.1/gdb/stack.c File Reference
#include "defs.h"
#include "value.h"
#include "symtab.h"
#include "gdbtypes.h"
#include "expression.h"
#include "language.h"
#include "frame.h"
#include "gdbcmd.h"
#include "gdbcore.h"
#include "target.h"
#include "source.h"
#include "breakpoint.h"
#include "demangle.h"
#include "inferior.h"
#include "annotate.h"
#include "ui-out.h"
#include "block.h"
#include "stack.h"
#include "dictionary.h"
#include "reggroups.h"
#include "regcache.h"
#include "solib.h"
#include "valprint.h"
#include "gdbthread.h"
#include "cp-support.h"
#include "disasm.h"
#include "inline-frame.h"
#include "linespec.h"
#include "cli/cli-utils.h"
#include "objfiles.h"
#include "safe-ctype.h"
#include "symfile.h"
#include "extension.h"
#include "observer.h"
#include "common/def-vector.h"

Go to the source code of this file.

Classes

struct  print_variable_and_value_data
 
struct  function_bounds
 

Functions

static void print_frame_local_vars (struct frame_info *, int, struct ui_file *)
 
static void print_frame (struct frame_info *frame, int print_level, enum print_what print_what, int print_args, struct symtab_and_line sal)
 
static void set_last_displayed_sal (int valid, struct program_space *pspace, CORE_ADDR addr, struct symtab *symtab, int line)
 
static int frame_show_address (struct frame_info *frame, struct symtab_and_line sal)
 
void print_stack_frame_to_uiout (struct ui_out *uiout, struct frame_info *frame, int print_level, enum print_what print_what, int set_current_sal)
 
void print_stack_frame (struct frame_info *frame, int print_level, enum print_what print_what, int set_current_sal)
 
static void print_frame_nameless_args (struct frame_info *frame, long start, int num, int first, struct ui_file *stream)
 
static void print_frame_arg (const struct frame_arg *arg)
 
void read_frame_local (struct symbol *sym, struct frame_info *frame, struct frame_arg *argp)
 
void read_frame_arg (struct symbol *sym, struct frame_info *frame, struct frame_arg *argp, struct frame_arg *entryargp)
 
static void print_frame_args (struct symbol *func, struct frame_info *frame, int num, struct ui_file *stream)
 
void set_current_sal_from_frame (struct frame_info *frame)
 
static void show_disassemble_next_line (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
 
static void do_gdb_disassembly (struct gdbarch *gdbarch, int how_many, CORE_ADDR low, CORE_ADDR high)
 
void print_frame_info (struct frame_info *frame, int print_level, enum print_what print_what, int print_args, int set_current_sal)
 
void clear_last_displayed_sal (void)
 
int last_displayed_sal_is_valid (void)
 
struct program_spaceget_last_displayed_pspace (void)
 
CORE_ADDR get_last_displayed_addr (void)
 
struct symtabget_last_displayed_symtab (void)
 
int get_last_displayed_line (void)
 
symtab_and_line get_last_displayed_sal ()
 
gdb::unique_xmalloc_ptr< char > find_frame_funname (struct frame_info *frame, enum language *funlang, struct symbol **funcp)
 
static void print_frame (struct frame_info *frame, int print_level, enum print_what print_what, int print_args, struct symtab_and_line sal)
 
static struct frame_infoparse_frame_specification (const char *frame_exp, int *selected_frame_p)
 
static void info_frame_command (const char *addr_exp, int from_tty)
 
static void backtrace_command_1 (const char *count_exp, int show_locals, int no_filters, int from_tty)
 
static void backtrace_command (const char *arg, int from_tty)
 
static void iterate_over_block_locals (const struct block *b, iterate_over_block_arg_local_vars_cb cb, void *cb_data)
 
void iterate_over_block_local_vars (const struct block *block, iterate_over_block_arg_local_vars_cb cb, void *cb_data)
 
static void do_print_variable_and_value (const char *print_name, struct symbol *sym, void *cb_data)
 
void info_locals_command (const char *args, int from_tty)
 
void iterate_over_block_arg_vars (const struct block *b, iterate_over_block_arg_local_vars_cb cb, void *cb_data)
 
static void print_frame_arg_vars (struct frame_info *frame, struct ui_file *stream)
 
void info_args_command (const char *ignore, int from_tty)
 
static void select_and_print_frame (struct frame_info *frame)
 
const struct blockget_selected_block (CORE_ADDR *addr_in_block)
 
struct frame_infofind_relative_frame (struct frame_info *frame, int *level_offset_ptr)
 
void select_frame_command (const char *level_exp, int from_tty)
 
static void frame_command (const char *level_exp, int from_tty)
 
static void up_silently_base (const char *count_exp)
 
static void up_silently_command (const char *count_exp, int from_tty)
 
static void up_command (const char *count_exp, int from_tty)
 
static void down_silently_base (const char *count_exp)
 
static void down_silently_command (const char *count_exp, int from_tty)
 
static void down_command (const char *count_exp, int from_tty)
 
void return_command (const char *retval_exp, int from_tty)
 
static void func_command (const char *arg, int from_tty)
 
void _initialize_stack (void)
 

Variables

static const char *const print_frame_arguments_choices []
 
static const char * print_frame_arguments = "scalars"
 
static int print_raw_frame_arguments
 
const char print_entry_values_no [] = "no"
 
const char print_entry_values_only [] = "only"
 
const char print_entry_values_preferred [] = "preferred"
 
const char print_entry_values_if_needed [] = "if-needed"
 
const char print_entry_values_both [] = "both"
 
const char print_entry_values_compact [] = "compact"
 
const char print_entry_values_default [] = "default"
 
static const char *const print_entry_values_choices []
 
const char * print_entry_values = print_entry_values_default
 
int annotation_level = 0
 
static int last_displayed_sal_valid = 0
 
static struct program_spacelast_displayed_pspace = 0
 
static CORE_ADDR last_displayed_addr = 0
 
static struct symtablast_displayed_symtab = 0
 
static int last_displayed_line = 0
 
static enum auto_boolean disassemble_next_line
 

Function Documentation

◆ _initialize_stack()

void _initialize_stack ( void  )

◆ backtrace_command()

static void backtrace_command ( const char *  arg,
int  from_tty 
)
static

Definition at line 1847 of file stack.c.

References gdb::argv, backtrace_command_1(), gdb_argv::get(), string, and subset_compare().

Referenced by _initialize_stack().

◆ backtrace_command_1()

static void backtrace_command_1 ( const char *  count_exp,
int  show_locals,
int  no_filters,
int  from_tty 
)
static

◆ clear_last_displayed_sal()

void clear_last_displayed_sal ( void  )

◆ do_gdb_disassembly()

static void do_gdb_disassembly ( struct gdbarch gdbarch,
int  how_many,
CORE_ADDR  low,
CORE_ADDR  high 
)
static

◆ do_print_variable_and_value()

static void do_print_variable_and_value ( const char *  print_name,
struct symbol sym,
void *  cb_data 
)
static

◆ down_command()

static void down_command ( const char *  count_exp,
int  from_tty 
)
static

◆ down_silently_base()

static void down_silently_base ( const char *  count_exp)
static

◆ down_silently_command()

static void down_silently_command ( const char *  count_exp,
int  from_tty 
)
static

Definition at line 2353 of file stack.c.

References down_silently_base().

Referenced by _initialize_stack().

◆ find_frame_funname()

gdb::unique_xmalloc_ptr<char> find_frame_funname ( struct frame_info frame,
enum language funlang,
struct symbol **  funcp 
)

◆ find_relative_frame()

struct frame_info* find_relative_frame ( struct frame_info frame,
int *  level_offset_ptr 
)

◆ frame_command()

static void frame_command ( const char *  level_exp,
int  from_tty 
)
static

◆ frame_show_address()

static int frame_show_address ( struct frame_info frame,
struct symtab_and_line  sal 
)
static

◆ func_command()

static void func_command ( const char *  arg,
int  from_tty 
)
static

◆ get_last_displayed_addr()

CORE_ADDR get_last_displayed_addr ( void  )

Definition at line 989 of file stack.c.

References last_displayed_addr, and last_displayed_sal_valid.

Referenced by skip_function_command().

◆ get_last_displayed_line()

int get_last_displayed_line ( void  )

◆ get_last_displayed_pspace()

struct program_space* get_last_displayed_pspace ( void  )

Definition at line 979 of file stack.c.

References last_displayed_pspace, and last_displayed_sal_valid.

◆ get_last_displayed_sal()

symtab_and_line get_last_displayed_sal ( )

◆ get_last_displayed_symtab()

struct symtab* get_last_displayed_symtab ( void  )

◆ get_selected_block()

const struct block* get_selected_block ( CORE_ADDR addr_in_block)

◆ info_args_command()

void info_args_command ( const char *  ignore,
int  from_tty 
)

Definition at line 2192 of file stack.c.

References _, gdb_stdout, get_selected_frame(), and print_frame_arg_vars().

Referenced by _initialize_stack(), and trace_dump_actions().

◆ info_frame_command()

static void info_frame_command ( const char *  addr_exp,
int  from_tty 
)
static

Definition at line 1383 of file stack.c.

References _, all_reggroup, CATCH, cp_remove_params(), END_CATCH, extract_unsigned_integer(), find_frame_sal(), fprintf_filtered(), fprintf_symbol_filtered(), fputs_filtered(), frame_id_p(), frame_register_unwind(), frame_relative_level(), frame_stop_reason_string(), frame_unwind_caller_id(), frame_unwind_caller_pc(), frame_unwind_register_value(), func, gdb_assert, gdb_stdout, gdbarch_byte_order(), gdbarch_frame_num_args(), gdbarch_frame_num_args_p(), gdbarch_num_pseudo_regs(), gdbarch_num_regs(), gdbarch_pc_regnum(), gdbarch_register_name(), gdbarch_register_reggroup_p(), gdbarch_sp_regnum(), get_frame_arch(), get_frame_args_address(), get_frame_base(), get_frame_function(), get_frame_locals_address(), get_frame_pc(), get_frame_pc_if_available(), get_frame_type(), get_frame_unwind_stop_reason(), get_next_frame(), get_prev_frame(), INLINE_FRAME, symtab::language, language_cplus, language_str(), language_unknown, symtab_and_line::line, lookup_minimal_symbol_by_pc(), value::lval, lval_memory, lval_register, MSYMBOL_LANGUAGE, MSYMBOL_PRINT_NAME, NOT_AVAILABLE_ERROR, not_lval, OPTIMIZED_OUT_ERROR, paddress(), parse_frame_specification(), print_frame_args(), printf_filtered(), puts_filtered(), register_size(), release_value(), RETURN_MASK_ERROR, sp_regnum, SYMBOL_LANGUAGE, SYMBOL_PRINT_NAME, symtab_and_line::symtab, symtab_to_filename_for_display(), TAILCALL_FRAME, TRY, val_print_not_saved(), val_print_unavailable(), value_address(), value_contents_all(), value_entirely_available(), value_free(), VALUE_LVAL, value_optimized_out(), VALUE_REGNUM, and wrap_here().

Referenced by _initialize_stack().

◆ info_locals_command()

void info_locals_command ( const char *  args,
int  from_tty 
)

Definition at line 2110 of file stack.c.

References _, gdb_stdout, get_selected_frame(), and print_frame_local_vars().

Referenced by _initialize_stack(), and trace_dump_actions().

◆ iterate_over_block_arg_vars()

void iterate_over_block_arg_vars ( const struct block b,
iterate_over_block_arg_local_vars_cb  cb,
void *  cb_data 
)

◆ iterate_over_block_local_vars()

void iterate_over_block_local_vars ( const struct block block,
iterate_over_block_arg_local_vars_cb  cb,
void *  cb_data 
)

◆ iterate_over_block_locals()

static void iterate_over_block_locals ( const struct block b,
iterate_over_block_arg_local_vars_cb  cb,
void *  cb_data 
)
static

◆ last_displayed_sal_is_valid()

int last_displayed_sal_is_valid ( void  )

◆ parse_frame_specification()

static struct frame_info* parse_frame_specification ( const char *  frame_exp,
int *  selected_frame_p 
)
static

◆ print_frame() [1/2]

static void print_frame ( struct frame_info frame,
int  print_level,
enum print_what  print_what,
int  print_args,
struct symtab_and_line  sal 
)
static

◆ print_frame() [2/2]

static void print_frame ( struct frame_info frame,
int  print_level,
enum print_what  print_what,
int  print_args,
struct symtab_and_line  sal 
)
static

◆ print_frame_arg()

static void print_frame_arg ( const struct frame_arg arg)
static

◆ print_frame_arg_vars()

static void print_frame_arg_vars ( struct frame_info frame,
struct ui_file stream 
)
static

◆ print_frame_args()

static void print_frame_args ( struct symbol func,
struct frame_info frame,
int  num,
struct ui_file stream 
)
static

◆ print_frame_info()

void print_frame_info ( struct frame_info frame,
int  print_level,
enum print_what print_what  ,
int  print_args,
int  set_current_sal 
)

◆ print_frame_local_vars()

static void print_frame_local_vars ( struct frame_info frame,
int  num_tabs,
struct ui_file stream 
)
static

◆ print_frame_nameless_args()

static void print_frame_nameless_args ( struct frame_info frame,
long  start,
int  num,
int  first,
struct ui_file stream 
)
static

◆ print_stack_frame()

void print_stack_frame ( struct frame_info frame,
int  print_level,
enum print_what print_what  ,
int  set_current_sal 
)

◆ print_stack_frame_to_uiout()

void print_stack_frame_to_uiout ( struct ui_out uiout,
struct frame_info frame,
int  print_level,
enum print_what print_what  ,
int  set_current_sal 
)

◆ read_frame_arg()

void read_frame_arg ( struct symbol sym,
struct frame_info frame,
struct frame_arg argp,
struct frame_arg entryargp 
)

◆ read_frame_local()

void read_frame_local ( struct symbol sym,
struct frame_info frame,
struct frame_arg argp 
)

◆ return_command()

void return_command ( const char *  retval_exp,
int  from_tty 
)

◆ select_and_print_frame()

static void select_and_print_frame ( struct frame_info frame)
static

Definition at line 2201 of file stack.c.

References print_stack_frame(), select_frame(), and SRC_AND_LOC.

Referenced by func_command().

◆ select_frame_command()

void select_frame_command ( const char *  level_exp,
int  from_tty 
)

◆ set_current_sal_from_frame()

void set_current_sal_from_frame ( struct frame_info frame)

◆ set_last_displayed_sal()

static void set_last_displayed_sal ( int  valid,
struct program_space pspace,
CORE_ADDR  addr,
struct symtab symtab,
int  line 
)
static

◆ show_disassemble_next_line()

static void show_disassemble_next_line ( struct ui_file file,
int  from_tty,
struct cmd_list_element c,
const char *  value 
)
static

Definition at line 741 of file stack.c.

References _, and fprintf_filtered().

Referenced by _initialize_stack().

◆ up_command()

static void up_command ( const char *  count_exp,
int  from_tty 
)
static

◆ up_silently_base()

static void up_silently_base ( const char *  count_exp)
static

◆ up_silently_command()

static void up_silently_command ( const char *  count_exp,
int  from_tty 
)
static

Definition at line 2314 of file stack.c.

References up_silently_base().

Referenced by _initialize_stack().

Variable Documentation

◆ annotation_level

int annotation_level = 0

Definition at line 111 of file stack.c.

Referenced by annotate_arg_begin(), annotate_arg_end(), annotate_arg_name_end(), annotate_arg_value(), annotate_array_section_begin(), annotate_array_section_end(), annotate_breakpoint(), annotate_breakpoints_headers(), annotate_breakpoints_invalid(), annotate_breakpoints_table(), annotate_breakpoints_table_end(), annotate_catchpoint(), annotate_display_begin(), annotate_display_end(), annotate_display_expression(), annotate_display_expression_end(), annotate_display_format(), annotate_display_number_end(), annotate_display_value(), annotate_elt(), annotate_elt_rep(), annotate_elt_rep_end(), annotate_error(), annotate_error_begin(), annotate_exited(), annotate_field(), annotate_field_begin(), annotate_field_end(), annotate_field_name_end(), annotate_field_value(), annotate_frame_address(), annotate_frame_address_end(), annotate_frame_args(), annotate_frame_begin(), annotate_frame_end(), annotate_frame_function_name(), annotate_frame_source_begin(), annotate_frame_source_end(), annotate_frame_source_file(), annotate_frame_source_file_end(), annotate_frame_source_line(), annotate_frame_where(), annotate_frames_invalid(), annotate_function_call(), annotate_new_thread(), annotate_quit(), annotate_record(), annotate_signal(), annotate_signal_handler_caller(), annotate_signal_name(), annotate_signal_name_end(), annotate_signal_string(), annotate_signal_string_end(), annotate_signalled(), annotate_source(), annotate_starting(), annotate_stopped(), annotate_thread_changed(), annotate_value_begin(), annotate_value_end(), annotate_value_history_begin(), annotate_value_history_end(), annotate_value_history_value(), annotate_watchpoint(), ATTRIBUTE_PRINTF(), captured_main_1(), command_line_input(), handle_line_of_input(), info_line_command(), init_main(), print_frame_info(), prompt_for_continue(), and top_level_prompt().

◆ disassemble_next_line

enum auto_boolean disassemble_next_line
static

Definition at line 738 of file stack.c.

Referenced by _initialize_stack(), and print_frame_info().

◆ last_displayed_addr

CORE_ADDR last_displayed_addr = 0
static

◆ last_displayed_line

int last_displayed_line = 0
static

◆ last_displayed_pspace

struct program_space* last_displayed_pspace = 0
static

◆ last_displayed_sal_valid

int last_displayed_sal_valid = 0
static

◆ last_displayed_symtab

struct symtab* last_displayed_symtab = 0
static

◆ print_entry_values

const char* print_entry_values = print_entry_values_default

Definition at line 88 of file stack.c.

Referenced by _initialize_stack(), and read_frame_arg().

◆ print_entry_values_both

const char print_entry_values_both[] = "both"

Definition at line 74 of file stack.c.

Referenced by read_frame_arg().

◆ print_entry_values_choices

const char* const print_entry_values_choices[]
static
Initial value:
=
{
NULL
}
const char print_entry_values_only[]
Definition: stack.c:71
const char print_entry_values_if_needed[]
Definition: stack.c:73
const char print_entry_values_preferred[]
Definition: stack.c:72
const char print_entry_values_default[]
Definition: stack.c:76
const char print_entry_values_no[]
Definition: stack.c:70
const char print_entry_values_compact[]
Definition: stack.c:75
const char print_entry_values_both[]
Definition: stack.c:74

Definition at line 77 of file stack.c.

Referenced by _initialize_stack().

◆ print_entry_values_compact

const char print_entry_values_compact[] = "compact"

Definition at line 75 of file stack.c.

Referenced by print_frame_arg(), py_print_single_arg(), and read_frame_arg().

◆ print_entry_values_default

const char print_entry_values_default[] = "default"

Definition at line 76 of file stack.c.

Referenced by read_frame_arg().

◆ print_entry_values_if_needed

const char print_entry_values_if_needed[] = "if-needed"

Definition at line 73 of file stack.c.

Referenced by read_frame_arg().

◆ print_entry_values_no

const char print_entry_values_no[] = "no"

◆ print_entry_values_only

const char print_entry_values_only[] = "only"

◆ print_entry_values_preferred

const char print_entry_values_preferred[] = "preferred"

Definition at line 72 of file stack.c.

Referenced by read_frame_arg().

◆ print_frame_arguments

const char* print_frame_arguments = "scalars"
static

Definition at line 62 of file stack.c.

Referenced by _initialize_stack(), backtrace_command_1(), print_frame_arg(), and print_frame_args().

◆ print_frame_arguments_choices

const char* const print_frame_arguments_choices[]
static
Initial value:
=
{"all", "scalars", "none", NULL}

Definition at line 60 of file stack.c.

Referenced by _initialize_stack().

◆ print_raw_frame_arguments

int print_raw_frame_arguments
static

Definition at line 65 of file stack.c.

Referenced by _initialize_stack(), and print_frame_arg().