gdb: make timestamped_file implement can_emit_style_escape

In our AMDGPU downstream port, we use styling in some logging output.
We noticed it stopped working after the gdb_printf changes.  Making
timestamped_file implement can_emit_style_escape (returning the value of
the stream it wraps) fixes it.  To show that it works, modify some
logging statements in auto-load.c to output style filenames.  You can
see it in action by setting "set debug auto-load 1" and running a
program.  We can incrementally add styling to other debug statements
throughout GDB, as needed.

Change-Id: I78a2fd1e078f80f2263251cf6bc53b3a9de9c17a
This commit is contained in:
Simon Marchi
2022-03-31 13:32:20 -04:00
parent cb25fdbb76
commit 962937b15d
2 changed files with 8 additions and 4 deletions

View File

@@ -733,8 +733,8 @@ auto_load_objfile_script_1 (struct objfile *objfile, const char *realname,
gdb_file_up input = gdb_fopen_cloexec (filename.c_str (), "r");
debugfile = filename.c_str ();
auto_load_debug_printf ("Attempted file \"%s\" %s.",
debugfile,
auto_load_debug_printf ("Attempted file \"%ps\" %s.",
styled_string (file_name_style.style (), debugfile),
input != nullptr ? "exists" : "does not exist");
std::string debugfile_holder;
@@ -763,8 +763,9 @@ auto_load_objfile_script_1 (struct objfile *objfile, const char *realname,
input = gdb_fopen_cloexec (debugfile, "r");
auto_load_debug_printf ("Attempted file \"%s\" %s.",
debugfile,
auto_load_debug_printf ("Attempted file \"%ps\" %s.",
styled_string (file_name_style.style (),
debugfile),
(input != nullptr
? "exists"
: "does not exist"));

View File

@@ -402,6 +402,9 @@ public:
{
}
bool can_emit_style_escape () override
{ return m_stream->can_emit_style_escape (); }
DISABLE_COPY_AND_ASSIGN (timestamped_file);
void write (const char *buf, long len) override;