Change GDB to use frame_info_ptr

This changes GDB to use frame_info_ptr instead of frame_info *
The substitution was done with multiple sequential `sed` commands:

sed 's/^struct frame_info;/class frame_info_ptr;/'
sed 's/struct frame_info \*/frame_info_ptr /g' - which left some
    issues in a few files, that were manually fixed.
sed 's/\<frame_info \*/frame_info_ptr /g'
sed 's/frame_info_ptr $/frame_info_ptr/g' - used to remove whitespace
    problems.

The changed files were then manually checked and some 'sed' changes
undone, some constructors and some gets were added, according to what
made sense, and what Tromey originally did

Co-Authored-By: Bruno Larsen <blarsen@redhat.com>
Approved-by: Tom Tomey <tom@tromey.com>
This commit is contained in:
Tom Tromey 2022-07-25 14:06:35 -03:00 committed by Bruno Larsen
parent ba380b3e51
commit bd2b40ac12
249 changed files with 1527 additions and 1522 deletions

View file

@ -55,7 +55,7 @@ enum inferior_call_kind
extern int emit_inferior_call_event (inferior_call_kind kind,
ptid_t thread, CORE_ADDR addr);
extern int emit_register_changed_event (struct frame_info *frame,
extern int emit_register_changed_event (frame_info_ptr frame,
int regnum);
extern int emit_memory_changed_event (CORE_ADDR addr, ssize_t len);
extern int evpy_emit_event (PyObject *event,

View file

@ -164,8 +164,8 @@ bpfinishpy_init (PyObject *self, PyObject *args, PyObject *kwargs)
(struct finish_breakpoint_object *) self;
PyObject *frame_obj = NULL;
int thread;
struct frame_info *frame = NULL; /* init for gcc -Wall */
struct frame_info *prev_frame = NULL;
frame_info_ptr frame = NULL; /* init for gcc -Wall */
frame_info_ptr prev_frame = NULL;
struct frame_id frame_id;
PyObject *internal = NULL;
int internal_bp = 0;

View file

@ -57,11 +57,11 @@ struct frame_object {
object. If the frame doesn't exist anymore (the frame id doesn't
correspond to any frame in the inferior), returns NULL. */
struct frame_info *
frame_info_ptr
frame_object_to_frame_info (PyObject *obj)
{
frame_object *frame_obj = (frame_object *) obj;
struct frame_info *frame;
frame_info_ptr frame;
frame = frame_find_by_id (frame_obj->frame_id);
if (frame == NULL)
@ -90,7 +90,7 @@ frapy_str (PyObject *self)
static PyObject *
frapy_is_valid (PyObject *self, PyObject *args)
{
struct frame_info *frame = NULL;
frame_info_ptr frame = NULL;
try
{
@ -113,7 +113,7 @@ frapy_is_valid (PyObject *self, PyObject *args)
static PyObject *
frapy_name (PyObject *self, PyObject *args)
{
struct frame_info *frame;
frame_info_ptr frame;
gdb::unique_xmalloc_ptr<char> name;
enum language lang;
PyObject *result;
@ -149,7 +149,7 @@ frapy_name (PyObject *self, PyObject *args)
static PyObject *
frapy_type (PyObject *self, PyObject *args)
{
struct frame_info *frame;
frame_info_ptr frame;
enum frame_type type = NORMAL_FRAME;/* Initialize to appease gcc warning. */
try
@ -172,7 +172,7 @@ frapy_type (PyObject *self, PyObject *args)
static PyObject *
frapy_arch (PyObject *self, PyObject *args)
{
struct frame_info *frame = NULL; /* Initialize to appease gcc warning. */
frame_info_ptr frame = NULL; /* Initialize to appease gcc warning. */
frame_object *obj = (frame_object *) self;
try
@ -193,7 +193,7 @@ frapy_arch (PyObject *self, PyObject *args)
static PyObject *
frapy_unwind_stop_reason (PyObject *self, PyObject *args)
{
struct frame_info *frame = NULL; /* Initialize to appease gcc warning. */
frame_info_ptr frame = NULL; /* Initialize to appease gcc warning. */
enum unwind_stop_reason stop_reason;
try
@ -217,7 +217,7 @@ static PyObject *
frapy_pc (PyObject *self, PyObject *args)
{
CORE_ADDR pc = 0; /* Initialize to appease gcc warning. */
struct frame_info *frame;
frame_info_ptr frame;
try
{
@ -246,7 +246,7 @@ frapy_read_register (PyObject *self, PyObject *args)
return NULL;
try
{
struct frame_info *frame;
frame_info_ptr frame;
int regnum;
FRAPY_REQUIRE_VALID (self, frame);
@ -275,7 +275,7 @@ frapy_read_register (PyObject *self, PyObject *args)
static PyObject *
frapy_block (PyObject *self, PyObject *args)
{
struct frame_info *frame;
frame_info_ptr frame;
const struct block *block = NULL, *fn_block;
try
@ -317,7 +317,7 @@ static PyObject *
frapy_function (PyObject *self, PyObject *args)
{
struct symbol *sym = NULL;
struct frame_info *frame;
frame_info_ptr frame;
try
{
@ -343,7 +343,7 @@ frapy_function (PyObject *self, PyObject *args)
Sets a Python exception and returns NULL on error. */
PyObject *
frame_info_to_frame_object (struct frame_info *frame)
frame_info_to_frame_object (frame_info_ptr frame)
{
gdbpy_ref<frame_object> frame_obj (PyObject_New (frame_object,
&frame_object_type));
@ -386,7 +386,7 @@ frame_info_to_frame_object (struct frame_info *frame)
static PyObject *
frapy_older (PyObject *self, PyObject *args)
{
struct frame_info *frame, *prev = NULL;
frame_info_ptr frame, prev = NULL;
PyObject *prev_obj = NULL; /* Initialize to appease gcc warning. */
try
@ -418,7 +418,7 @@ frapy_older (PyObject *self, PyObject *args)
static PyObject *
frapy_newer (PyObject *self, PyObject *args)
{
struct frame_info *frame, *next = NULL;
frame_info_ptr frame, next = NULL;
PyObject *next_obj = NULL; /* Initialize to appease gcc warning. */
try
@ -449,7 +449,7 @@ frapy_newer (PyObject *self, PyObject *args)
static PyObject *
frapy_find_sal (PyObject *self, PyObject *args)
{
struct frame_info *frame;
frame_info_ptr frame;
PyObject *sal_obj = NULL; /* Initialize to appease gcc warning. */
try
@ -477,7 +477,7 @@ frapy_find_sal (PyObject *self, PyObject *args)
static PyObject *
frapy_read_var (PyObject *self, PyObject *args)
{
struct frame_info *frame;
frame_info_ptr frame;
PyObject *sym_obj, *block_obj = NULL;
struct symbol *var = NULL; /* gcc-4.3.2 false warning. */
const struct block *block = NULL;
@ -558,7 +558,7 @@ frapy_read_var (PyObject *self, PyObject *args)
static PyObject *
frapy_select (PyObject *self, PyObject *args)
{
struct frame_info *fi;
frame_info_ptr fi;
try
{
@ -579,7 +579,7 @@ frapy_select (PyObject *self, PyObject *args)
static PyObject *
frapy_level (PyObject *self, PyObject *args)
{
struct frame_info *fi;
frame_info_ptr fi;
try
{
@ -602,7 +602,7 @@ frapy_language (PyObject *self, PyObject *args)
{
try
{
struct frame_info *fi;
frame_info_ptr fi;
FRAPY_REQUIRE_VALID (self, fi);
enum language lang = get_frame_language (fi);
@ -624,7 +624,7 @@ frapy_language (PyObject *self, PyObject *args)
PyObject *
gdbpy_newest_frame (PyObject *self, PyObject *args)
{
struct frame_info *frame = NULL;
frame_info_ptr frame = NULL;
try
{
@ -644,7 +644,7 @@ gdbpy_newest_frame (PyObject *self, PyObject *args)
PyObject *
gdbpy_selected_frame (PyObject *self, PyObject *args)
{
struct frame_info *frame = NULL;
frame_info_ptr frame = NULL;
try
{

View file

@ -419,7 +419,7 @@ enumerate_args (PyObject *iter,
struct ui_out *out,
enum ext_lang_frame_args args_type,
int print_args_field,
struct frame_info *frame)
frame_info_ptr frame)
{
struct value_print_options opts;
@ -550,7 +550,7 @@ enumerate_locals (PyObject *iter,
int indent,
enum ext_lang_frame_args args_type,
int print_args_field,
struct frame_info *frame)
frame_info_ptr frame)
{
struct value_print_options opts;
@ -638,7 +638,7 @@ static enum ext_lang_bt_status
py_mi_print_variables (PyObject *filter, struct ui_out *out,
struct value_print_options *opts,
enum ext_lang_frame_args args_type,
struct frame_info *frame)
frame_info_ptr frame)
{
gdbpy_ref<> args_iter (get_py_iter_from_func (filter, "frame_args"));
if (args_iter == NULL)
@ -672,7 +672,7 @@ py_print_locals (PyObject *filter,
struct ui_out *out,
enum ext_lang_frame_args args_type,
int indent,
struct frame_info *frame)
frame_info_ptr frame)
{
gdbpy_ref<> locals_iter (get_py_iter_from_func (filter, "frame_locals"));
if (locals_iter == NULL)
@ -697,7 +697,7 @@ static enum ext_lang_bt_status
py_print_args (PyObject *filter,
struct ui_out *out,
enum ext_lang_frame_args args_type,
struct frame_info *frame)
frame_info_ptr frame)
{
gdbpy_ref<> args_iter (get_py_iter_from_func (filter, "frame_args"));
if (args_iter == NULL)
@ -754,7 +754,7 @@ py_print_frame (PyObject *filter, frame_filter_flags flags,
int has_addr = 0;
CORE_ADDR address = 0;
struct gdbarch *gdbarch = NULL;
struct frame_info *frame = NULL;
frame_info_ptr frame = NULL;
struct value_print_options opts;
int print_level, print_frame_info, print_args, print_locals;
@ -862,8 +862,8 @@ py_print_frame (PyObject *filter, frame_filter_flags flags,
struct frame_info **slot;
int level;
slot = (struct frame_info **) htab_find_slot (levels_printed,
frame, INSERT);
slot = (frame_info **) htab_find_slot (levels_printed,
frame.get(), INSERT);
level = frame_relative_level (frame);
@ -875,7 +875,7 @@ py_print_frame (PyObject *filter, frame_filter_flags flags,
out->field_skip ("level");
else
{
*slot = frame;
*slot = frame.get ();
annotate_frame_begin (print_level ? level : 0,
gdbarch, address);
out->text ("#");
@ -1078,7 +1078,7 @@ py_print_frame (PyObject *filter, frame_filter_flags flags,
frame FRAME. */
static PyObject *
bootstrap_python_frame_filters (struct frame_info *frame,
bootstrap_python_frame_filters (frame_info_ptr frame,
int frame_low, int frame_high)
{
gdbpy_ref<> frame_obj (frame_info_to_frame_object (frame));
@ -1133,7 +1133,7 @@ bootstrap_python_frame_filters (struct frame_info *frame,
enum ext_lang_bt_status
gdbpy_apply_frame_filter (const struct extension_language_defn *extlang,
struct frame_info *frame, frame_filter_flags flags,
frame_info_ptr frame, frame_filter_flags flags,
enum ext_lang_frame_args args_type,
struct ui_out *out, int frame_low, int frame_high)
{

View file

@ -174,7 +174,7 @@ python_on_memory_change (struct inferior *inferior, CORE_ADDR addr, ssize_t len,
command). */
static void
python_on_register_change (struct frame_info *frame, int regnum)
python_on_register_change (frame_info_ptr frame, int regnum)
{
gdbpy_enter enter_py (target_gdbarch ());

View file

@ -62,7 +62,7 @@ create_inferior_call_event_object (inferior_call_kind flag, ptid_t ptid,
register number. */
static gdbpy_ref<>
create_register_changed_event_object (struct frame_info *frame,
create_register_changed_event_object (frame_info_ptr frame,
int regnum)
{
gdbpy_ref<> event = create_event_object (&register_changed_event_object_type);
@ -151,7 +151,7 @@ emit_memory_changed_event (CORE_ADDR addr, ssize_t len)
will create a new Python register changed event object. */
int
emit_register_changed_event (struct frame_info* frame, int regnum)
emit_register_changed_event (frame_info_ptr frame, int regnum)
{
if (evregpy_no_listeners_p (gdb_py_events.register_changed))
return 0;

View file

@ -265,7 +265,7 @@ static PyObject *
sympy_value (PyObject *self, PyObject *args)
{
struct symbol *symbol = NULL;
struct frame_info *frame_info = NULL;
frame_info_ptr frame_info = NULL;
PyObject *frame_obj = NULL;
struct value *value = NULL;
@ -401,7 +401,7 @@ gdbpy_lookup_symbol (PyObject *self, PyObject *args, PyObject *kw)
block = block_object_to_block (block_obj);
else
{
struct frame_info *selected_frame;
frame_info_ptr selected_frame;
try
{
@ -511,7 +511,7 @@ gdbpy_lookup_static_symbol (PyObject *self, PyObject *args, PyObject *kw)
const struct block *block = NULL;
try
{
struct frame_info *selected_frame
frame_info_ptr selected_frame
= get_selected_frame (_("No frame selected."));
block = get_frame_block (selected_frame, NULL);
}

View file

@ -57,7 +57,7 @@ struct pending_frame_object
PyObject_HEAD
/* Frame we are unwinding. */
struct frame_info *frame_info;
frame_info_ptr frame_info;
/* Its architecture, passed by the sniffer caller. */
struct gdbarch *gdbarch;
@ -339,7 +339,7 @@ unwind_infopy_dealloc (PyObject *self)
static PyObject *
pending_framepy_str (PyObject *self)
{
struct frame_info *frame = ((pending_frame_object *) self)->frame_info;
frame_info_ptr frame = ((pending_frame_object *) self)->frame_info;
const char *sp_str = NULL;
const char *pc_str = NULL;
@ -475,7 +475,7 @@ pending_framepy_level (PyObject *self, PyObject *args)
/* frame_unwind.this_id method. */
static void
pyuw_this_id (struct frame_info *this_frame, void **cache_ptr,
pyuw_this_id (frame_info_ptr this_frame, void **cache_ptr,
struct frame_id *this_id)
{
*this_id = ((cached_frame_info *) *cache_ptr)->frame_id;
@ -485,7 +485,7 @@ pyuw_this_id (struct frame_info *this_frame, void **cache_ptr,
/* frame_unwind.prev_register. */
static struct value *
pyuw_prev_register (struct frame_info *this_frame, void **cache_ptr,
pyuw_prev_register (frame_info_ptr this_frame, void **cache_ptr,
int regnum)
{
PYUW_SCOPED_DEBUG_ENTER_EXIT;
@ -508,7 +508,7 @@ pyuw_prev_register (struct frame_info *this_frame, void **cache_ptr,
/* Frame sniffer dispatch. */
static int
pyuw_sniffer (const struct frame_unwind *self, struct frame_info *this_frame,
pyuw_sniffer (const struct frame_unwind *self, frame_info_ptr this_frame,
void **cache_ptr)
{
PYUW_SCOPED_DEBUG_ENTER_EXIT;
@ -635,7 +635,7 @@ pyuw_sniffer (const struct frame_unwind *self, struct frame_info *this_frame,
/* Frame cache release shim. */
static void
pyuw_dealloc_cache (struct frame_info *this_frame, void *cache)
pyuw_dealloc_cache (frame_info *this_frame, void *cache)
{
PYUW_SCOPED_DEBUG_ENTER_EXIT;
cached_frame_info *cached_frame = (cached_frame_info *) cache;

View file

@ -366,7 +366,7 @@ extern enum ext_lang_rc gdbpy_apply_val_pretty_printer
const struct language_defn *language);
extern enum ext_lang_bt_status gdbpy_apply_frame_filter
(const struct extension_language_defn *,
struct frame_info *frame, frame_filter_flags flags,
frame_info_ptr frame, frame_filter_flags flags,
enum ext_lang_frame_args args_type,
struct ui_out *out, int frame_low, int frame_high);
extern void gdbpy_preserve_values (const struct extension_language_defn *,
@ -427,7 +427,7 @@ PyObject *block_to_block_object (const struct block *block,
PyObject *value_to_value_object (struct value *v);
PyObject *value_to_value_object_no_release (struct value *v);
PyObject *type_to_type_object (struct type *);
PyObject *frame_info_to_frame_object (struct frame_info *frame);
PyObject *frame_info_to_frame_object (frame_info_ptr frame);
PyObject *symtab_to_linetable_object (PyObject *symtab);
gdbpy_ref<> pspace_to_pspace_object (struct program_space *);
PyObject *pspy_get_printers (PyObject *, void *);
@ -467,7 +467,7 @@ struct value *convert_value_from_python (PyObject *obj);
struct type *type_object_to_type (PyObject *obj);
struct symtab *symtab_object_to_symtab (PyObject *obj);
struct symtab_and_line *sal_object_to_symtab_and_line (PyObject *obj);
struct frame_info *frame_object_to_frame_info (PyObject *frame_obj);
frame_info_ptr frame_object_to_frame_info (PyObject *frame_obj);
struct gdbarch *arch_object_to_gdbarch (PyObject *obj);
/* Convert Python object OBJ to a program_space pointer. OBJ must be a