gdb: introduce frame_debug_printf

Introduce frame_debug_printf, to convert the "frame" debug messages to
the new system.  Replace fprint_frame with a frame_info::to_string
method that returns a string, like what was done with
frame_id::to_string.  This makes it easier to use with
frame_debug_printf.

gdb/ChangeLog:

	* frame.h (frame_debug_printf): New.
	* frame.c: Use frame_debug_printf throughout when printing frame
	debug messages.
	* amd64-windows-tdep.c: Likewise.
	* value.c: Likewise.

gdb/testsuite/ChangeLog:

	* gdb.dwarf2/dw2-reg-undefined.exp: Update regexp.

Change-Id: I3c230b0814ea81c23af3e1aca1aac8d4ba91d726
This commit is contained in:
Simon Marchi
2021-06-29 12:03:50 -04:00
parent dd4f75f2b6
commit a05a883fba
7 changed files with 177 additions and 251 deletions

View File

@ -3956,17 +3956,17 @@ value_fetch_lazy_register (struct value *val)
regnum = VALUE_REGNUM (val);
gdbarch = get_frame_arch (frame);
fprintf_unfiltered (gdb_stdlog,
"{ value_fetch_lazy "
"(frame=%d,regnum=%d(%s),...) ",
string_file debug_file;
fprintf_unfiltered (&debug_file,
"(frame=%d, regnum=%d(%s), ...) ",
frame_relative_level (frame), regnum,
user_reg_map_regnum_to_name (gdbarch, regnum));
fprintf_unfiltered (gdb_stdlog, "->");
fprintf_unfiltered (&debug_file, "->");
if (value_optimized_out (new_val))
{
fprintf_unfiltered (gdb_stdlog, " ");
val_print_optimized_out (new_val, gdb_stdlog);
fprintf_unfiltered (&debug_file, " ");
val_print_optimized_out (new_val, &debug_file);
}
else
{
@ -3974,23 +3974,23 @@ value_fetch_lazy_register (struct value *val)
const gdb_byte *buf = value_contents (new_val);
if (VALUE_LVAL (new_val) == lval_register)
fprintf_unfiltered (gdb_stdlog, " register=%d",
fprintf_unfiltered (&debug_file, " register=%d",
VALUE_REGNUM (new_val));
else if (VALUE_LVAL (new_val) == lval_memory)
fprintf_unfiltered (gdb_stdlog, " address=%s",
fprintf_unfiltered (&debug_file, " address=%s",
paddress (gdbarch,
value_address (new_val)));
else
fprintf_unfiltered (gdb_stdlog, " computed");
fprintf_unfiltered (&debug_file, " computed");
fprintf_unfiltered (gdb_stdlog, " bytes=");
fprintf_unfiltered (gdb_stdlog, "[");
fprintf_unfiltered (&debug_file, " bytes=");
fprintf_unfiltered (&debug_file, "[");
for (i = 0; i < register_size (gdbarch, regnum); i++)
fprintf_unfiltered (gdb_stdlog, "%02x", buf[i]);
fprintf_unfiltered (gdb_stdlog, "]");
fprintf_unfiltered (&debug_file, "%02x", buf[i]);
fprintf_unfiltered (&debug_file, "]");
}
fprintf_unfiltered (gdb_stdlog, " }\n");
frame_debug_printf ("%s", debug_file.c_str ());
}
/* Dispose of the intermediate values. This prevents