From 29e316d8b15f1f1874bb58d8cd8346629f4edcc4 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Wed, 13 Nov 2024 08:49:53 -0700 Subject: Don't put JIT_READER_DIR into help text MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 80-column-help-string self-test can fail if gdb's install directory is too long, because the help for "jit-reader-load" includes JIT_READER_DIR. This help text is actually somewhat misleading, though. JIT_READER_DIR is not actually used directly -- instead the relocated variant is used. This patch adds a new "show jit-reader-directory" command and changes the help text to refer to this instead. I considered adding a "set" command as well, but since absolute paths are acceptable here, and since this is a very niche command anyway, I figured there was no need to bother. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=32357 Reviewed-By: Kévin Le Gouguec Reviewed-By: Eli Zaretskii Approved-By: Andrew Burgess --- gdb/NEWS | 4 ++++ gdb/doc/gdb.texinfo | 4 ++++ gdb/jit.c | 21 +++++++++++++++++++-- gdb/testsuite/gdb.base/jit-reader.exp | 4 ++++ 4 files changed, 31 insertions(+), 2 deletions(-) (limited to 'gdb') diff --git a/gdb/NEWS b/gdb/NEWS index 046daad..f3c5d720 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -94,6 +94,10 @@ * New commands +show jit-reader-directory + Show the name of the directory that "jit-reader-load" uses for + relative file names. + set style line-number foreground COLOR set style line-number background COLOR set style line-number intensity VALUE diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 99720f1..b91b5d6 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -40047,6 +40047,10 @@ reporting an error. A new JIT reader can be loaded by first unloading the current one using @code{jit-reader-unload} and then invoking @code{jit-reader-load}. +@item show jit-reader-directory +This command will show the directory that is used by +@code{jit-reader-load} when a relative file name is specified. + @item jit-reader-unload Unload the currently loaded JIT reader. diff --git a/gdb/jit.c b/gdb/jit.c index 48be1c8..77d41bf 100644 --- a/gdb/jit.c +++ b/gdb/jit.c @@ -28,6 +28,7 @@ #include "filenames.h" #include "frame-unwind.h" #include "cli/cli-cmds.h" +#include "cli/cli-style.h" #include "gdbcore.h" #include "inferior.h" #include "observable.h" @@ -1298,6 +1299,16 @@ jit_event_handler (gdbarch *gdbarch, objfile *jiter) } } +/* Implementation of "show jit-reader-directory". */ + +static void +show_jit_reader_directory (const char *args, int from_tty) +{ + gdb_printf (_("JIT reader directory is %ps.\n"), + styled_string (file_name_style.style (), + jit_reader_dir.c_str ())); +} + void _initialize_jit (); void _initialize_jit () @@ -1329,8 +1340,8 @@ _initialize_jit () Load FILE as debug info reader and unwinder for JIT compiled code.\n\ Usage: jit-reader-load FILE\n\ Try to load file FILE as a debug info reader (and unwinder) for\n\ -JIT compiled code. The file is loaded from " JIT_READER_DIR ",\n\ -relocated relative to the GDB executable if required.")); +JIT compiled code. If FILE is not an absolute file name, it is found\n\ +relative to a built-in directory. See \"show jit-reader-directory\".")); set_cmd_completer (c, deprecated_filename_completer); c = add_com ("jit-reader-unload", no_class, @@ -1339,5 +1350,11 @@ Unload the currently loaded JIT debug info reader.\n\ Usage: jit-reader-unload\n\n\ Do \"help jit-reader-load\" for info on loading debug info readers.")); set_cmd_completer (c, noop_completer); + + add_cmd ("jit-reader-directory", class_obscure, + show_jit_reader_directory, + _("Show the JIT reader directory.\n\ +This is the directory used by \"jit-reader-load\" when given\n\ +a relative file name."), &showlist); } } diff --git a/gdb/testsuite/gdb.base/jit-reader.exp b/gdb/testsuite/gdb.base/jit-reader.exp index 62f6af2..2a96207 100644 --- a/gdb/testsuite/gdb.base/jit-reader.exp +++ b/gdb/testsuite/gdb.base/jit-reader.exp @@ -109,6 +109,10 @@ proc jit_reader_test {} { gdb_test_no_output "set debug jit 1" } + # Just test that this is installed and prints something. + gdb_test "show jit-reader-directory" \ + "JIT reader directory is .*\\." + gdb_test_no_output "jit-reader-load ${jit_reader_bin}" "jit-reader-load" gdb_run_cmd gdb_test "" "Program received signal SIGTRAP, .*" "expect SIGTRAP" -- cgit v1.1