This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Fix PR cli/18053


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=6571a3815623d907b7a3f560e909edd8c76a9e1c

commit 6571a3815623d907b7a3f560e909edd8c76a9e1c
Author: Tom Tromey <tom@tromey.com>
Date:   Sun Mar 1 20:33:00 2015 -0700

    Fix PR cli/18053
    
    PR cli/18053 concerns a couple of minor bugs in the JIT debuginfo
    support.  First, jit-reader-load should use filename completion and
    support tilde expansion.  Second, the help for jit-reader-unload is
    incorrect.  While working on this I also realized that
    jit-reader-unload should use the no-op completer, so I've included
    that as well.
    
    Built and regtested on x86-64 Fedora 23.  A completer test for
    jit-reader-load is included, but not a tilde-expansion test, as I
    couldn't think of a reliable way to test that.
    
    2016-07-13  Tom Tromey  <tom@tromey.com>
    
    	PR cli/18053:
    	* jit.c (jit_reader_load_command): Use tilde_expand.
    	(_initialize_jit): Fix help for jit-reader-unload.  Set completer
    	for new commands.
    
    2016-07-13  Tom Tromey  <tom@tromey.com>
    
    	PR cli/18053:
    	* gdb.base/jit-so.exp (one_jit_test): Add jit-reader-load
    	completion test.

Diff:
---
 gdb/ChangeLog                     |  7 +++++++
 gdb/jit.c                         | 24 ++++++++++++++++++------
 gdb/testsuite/ChangeLog           |  6 ++++++
 gdb/testsuite/gdb.base/jit-so.exp |  7 +++++++
 4 files changed, 38 insertions(+), 6 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4139a29..65adae1 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2016-07-13  Tom Tromey  <tom@tromey.com>
+
+	PR cli/18053:
+	* jit.c (jit_reader_load_command): Use tilde_expand.
+	(_initialize_jit): Fix help for jit-reader-unload.  Set completer
+	for new commands.
+
 2016-07-12  Tom Tromey  <tom@tromey.com>
 
 	PR python/19293:
diff --git a/gdb/jit.c b/gdb/jit.c
index 2b6cf77..1b772ab 100644
--- a/gdb/jit.c
+++ b/gdb/jit.c
@@ -39,6 +39,8 @@
 #include "gdb-dlfcn.h"
 #include <sys/stat.h>
 #include "gdb_bfd.h"
+#include "readline/tilde.h"
+#include "completer.h"
 
 static const char *jit_reader_dir = NULL;
 
@@ -208,15 +210,19 @@ jit_reader_load_command (char *args, int from_tty)
 
   if (args == NULL)
     error (_("No reader name provided."));
+  args = tilde_expand (args);
+  prev_cleanup = make_cleanup (xfree, args);
 
   if (loaded_jit_reader != NULL)
     error (_("JIT reader already loaded.  Run jit-reader-unload first."));
 
   if (IS_ABSOLUTE_PATH (args))
-    so_name = xstrdup (args);
+    so_name = args;
   else
-    so_name = xstrprintf ("%s%s%s", jit_reader_dir, SLASH_STRING, args);
-  prev_cleanup = make_cleanup (xfree, so_name);
+    {
+      so_name = xstrprintf ("%s%s%s", jit_reader_dir, SLASH_STRING, args);
+      make_cleanup (xfree, so_name);
+    }
 
   loaded_jit_reader = jit_reader_load (so_name);
   reinit_frame_cache ();
@@ -1529,15 +1535,21 @@ _initialize_jit (void)
   jit_gdbarch_data = gdbarch_data_register_pre_init (jit_gdbarch_data_init);
   if (is_dl_available ())
     {
-      add_com ("jit-reader-load", no_class, jit_reader_load_command, _("\
+      struct cmd_list_element *c;
+
+      c = add_com ("jit-reader-load", no_class, jit_reader_load_command, _("\
 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."));
-      add_com ("jit-reader-unload", no_class, jit_reader_unload_command, _("\
+      set_cmd_completer (c, filename_completer);
+
+      c = add_com ("jit-reader-unload", no_class,
+		   jit_reader_unload_command, _("\
 Unload the currently loaded JIT debug info reader.\n\
-Usage: jit-reader-unload FILE\n\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);
     }
 }
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 7ab1228..b404db4 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2016-07-13  Tom Tromey  <tom@tromey.com>
+
+	PR cli/18053:
+	* gdb.base/jit-so.exp (one_jit_test): Add jit-reader-load
+	completion test.
+
 2016-07-13  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
 	* gdb.dwarf2/atomic-type.exp: Use function_range for low_pc and high_pc.
diff --git a/gdb/testsuite/gdb.base/jit-so.exp b/gdb/testsuite/gdb.base/jit-so.exp
index 0db3259..9fadd86 100644
--- a/gdb/testsuite/gdb.base/jit-so.exp
+++ b/gdb/testsuite/gdb.base/jit-so.exp
@@ -117,3 +117,10 @@ proc one_jit_test {count match_str} {
 
 one_jit_test 1 "${hex}  jit_function_0000"
 one_jit_test 2 "${hex}  jit_function_0000\[\r\n\]+${hex}  jit_function_0001"
+
+# We don't intend to load the .so as a JIT debuginfo reader, but we
+# need some handy file name for a completion test.
+gdb_test \
+    "complete jit-reader-load [standard_output_file ${solib_testfile}.s]" \
+    "jit-reader-load $solib_binfile" \
+    "test jit-reader-load filename completion"


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]