diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ebb969998c..f3a2175dc9 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2017-11-29 Tom Tromey + + * symfile.c (add_symbol_file_command): Error if some arguments to + -s are missing. Change unrecognized-argument error message. + (_initialize_symfile): Fix usage text for add-symbol-file. + 2017-11-27 Tom Tromey * Makefile.in (REMOTE_OBS): Remove. diff --git a/gdb/symfile.c b/gdb/symfile.c index feb50f8b79..c19cdd20eb 100644 --- a/gdb/symfile.c +++ b/gdb/symfile.c @@ -2244,8 +2244,7 @@ add_symbol_file_command (const char *args, int from_tty) expecting_sec_addr = 1; } else - error (_("USAGE: add-symbol-file " - " [-readnow] [-s ]*")); + error (_("Unrecognized argument \"%s\""), arg); } } @@ -2257,6 +2256,11 @@ add_symbol_file_command (const char *args, int from_tty) error (_("The address where %s has been loaded is missing"), filename.get ()); + if (expecting_sec_name) + error (_("Missing section name after \"-s\"")); + else if (expecting_sec_addr) + error (_("Missing section address after \"-s\"")); + /* Print the prompt for the query below. And save the arguments into a sect_addr_info structure to be passed around to other functions. We have to split this up into separate print @@ -3882,11 +3886,11 @@ to execute."), &cmdlist); c = add_cmd ("add-symbol-file", class_files, add_symbol_file_command, _("\ Load symbols from FILE, assuming FILE has been dynamically loaded.\n\ -Usage: add-symbol-file FILE ADDR [-s -s \ - ...]\nADDR is the starting address of the file's text.\n\ -The optional arguments are section-name section-address pairs and\n\ +Usage: add-symbol-file FILE ADDR [-readnow | -s SECT-NAME SECT-ADDR]...\n\ +ADDR is the starting address of the file's text.\n\ +Each '-s' argument provides a section name and address, and\n\ should be specified if the data and bss segments are not contiguous\n\ -with the text. SECT is a section name to be loaded at SECT_ADDR."), +with the text. SECT-NAME is a section name to be loaded at SECT-ADDR."), &cmdlist); set_cmd_completer (c, filename_completer); diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 87b917e0c5..4fba24bedc 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-11-29 Tom Tromey + + * gdb.base/relocate.exp: Update invalid argument test. + Add new tests for invalid arguments. + 2017-11-29 Thomas Preud'homme * gdb.cp/psymtab-parameter.cc (func): Change return type back to long. diff --git a/gdb/testsuite/gdb.base/relocate.exp b/gdb/testsuite/gdb.base/relocate.exp index 5639cc8847..6eef15fb20 100644 --- a/gdb/testsuite/gdb.base/relocate.exp +++ b/gdb/testsuite/gdb.base/relocate.exp @@ -31,11 +31,19 @@ gdb_reinitialize_dir $srcdir/$subdir #Check that invalid options are rejected. foreach x {"-raednow" "readnow" "foo" "-readnow s"} { + set word [lindex $x [expr [llength $x]-1]] gdb_test "add-symbol-file ${binfile} 0 $x" \ - "USAGE: add-symbol-file .*-readnow.*-s .*" \ - "add-symbol-file: unknown option $x" + "Unrecognized argument \"$word\"" \ + "add-symbol-file: unknown option $word" } +gdb_test "add-symbol-file ${binfile} 0 -s" \ + "Missing section name after .-s." \ + "add-symbol-file bare -s" +gdb_test "add-symbol-file ${binfile} 0 -s .whatever" \ + "Missing section address after .-s." \ + "add-symbol-file missing address" + # Load the object file. gdb_test "add-symbol-file ${binfile} 0" \ "Reading symbols from .*${testfile}\\.o\\.\\.\\.done\\.(|\r\nUsing host libthread_db library .*libthread_db.so.*\\.)" \