diff options
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/symfile.c | 16 | ||||
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/relocate.exp | 12 |
4 files changed, 31 insertions, 8 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ebb9699..f3a2175 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2017-11-29 Tom Tromey <tom@tromey.com> + + * 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 <tom@tromey.com> * Makefile.in (REMOTE_OBS): Remove. diff --git a/gdb/symfile.c b/gdb/symfile.c index feb50f8..c19cdd2 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 <filename> <textaddress>" - " [-readnow] [-s <secname> <addr>]*")); + 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 <SECT> <SECT_ADDR> -s <SECT> <SECT_ADDR>\ - ...]\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 87b917e..4fba24b 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-11-29 Tom Tromey <tom@tromey.com> + + * gdb.base/relocate.exp: Update invalid argument test. + Add new tests for invalid arguments. + 2017-11-29 Thomas Preud'homme <thomas.preudhomme@arm.com> * 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 5639cc8..6eef15f 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 <filename> <textaddress>.*-readnow.*-s <secname> <addr>.*" \ - "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.*\\.)" \ |