From 962937b15dd570e44109f3c8196a392b788837ba Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Thu, 31 Mar 2022 13:32:20 -0400 Subject: 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 --- gdb/auto-load.c | 9 +++++---- gdb/ui-file.h | 3 +++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/gdb/auto-load.c b/gdb/auto-load.c index 057104d..b6056f5 100644 --- a/gdb/auto-load.c +++ b/gdb/auto-load.c @@ -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")); diff --git a/gdb/ui-file.h b/gdb/ui-file.h index f8e1fe8..e420555 100644 --- a/gdb/ui-file.h +++ b/gdb/ui-file.h @@ -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; -- cgit v1.1