/* Definitions for dealing with stack frames, for GDB, the GNU debugger.
- Copyright (C) 1986-2019 Free Software Foundation, Inc.
+ Copyright (C) 1986-2020 Free Software Foundation, Inc.
+ Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
This file is part of GDB.
#define FRAME_H 1
/* The following is the intended naming schema for frame functions.
- It isn't 100% consistent, but it is aproaching that. Frame naming
+ It isn't 100% consistent, but it is approaching that. Frame naming
schema:
Prefixes:
/* This means "there is no frame ID, but there is a frame". It should be
replaced by best-effort frame IDs for the outermost frame, somehow.
- The implementation is only special_addr_p set. */
+ The implementation is only special_addr_p, and possibly
+ artificial_depth, set. */
extern const struct frame_id outer_frame_id;
/* Flag to control debugging. */
extern struct frame_id frame_id_build_wild (CORE_ADDR stack_addr);
/* Returns non-zero when L is a valid frame (a valid frame has a
- non-zero .base). The outermost frame is valid even without an
- ID. */
+ non-zero .base). The outermost frame and any frames inlined into it
+ are valid even without an ID. */
extern int frame_id_p (struct frame_id l);
/* Returns non-zero when L is a valid frame representing a frame made up by GDB
const char *print_frame_info = print_frame_info_auto;
const char *print_entry_values = print_entry_values_default;
- /* If non-zero, don't invoke pretty-printers for frame
+ /* If true, don't invoke pretty-printers for frame
arguments. */
- int print_raw_frame_arguments;
+ bool print_raw_frame_arguments;
};
/* The values behind the global "set print ..." settings. */
struct frame_arg
{
/* Symbol for this parameter used for example for its name. */
- struct symbol *sym;
+ struct symbol *sym = nullptr;
/* Value of the parameter. It is NULL if ERROR is not NULL; if both VAL and
ERROR are NULL this parameter's value should not be printed. */
- struct value *val;
+ struct value *val = nullptr;
/* String containing the error message, it is more usually NULL indicating no
error occured reading this parameter. */
- char *error;
+ gdb::unique_xmalloc_ptr<char> error;
/* One of the print_entry_values_* entries as appropriate specifically for
this frame_arg. It will be different from print_entry_values. With
value - print_entry_values_compact is not permitted fi ui_out_is_mi_like_p
(in such case print_entry_values_no and print_entry_values_only is used
for each parameter kind specifically. */
- const char *entry_kind;
+ const char *entry_kind = nullptr;
};
extern void read_frame_arg (const frame_print_options &fp_opts,
{
/* Flag to indicate whether backtraces should continue past
main. */
- int backtrace_past_main = 0;
+ bool backtrace_past_main = false;
/* Flag to indicate whether backtraces should continue past
entry. */
- int backtrace_past_entry = 0;
+ bool backtrace_past_entry = false;
/* Upper bound on the number of backtrace levels. Note this is not
exposed as a command option, because "backtrace" and "frame