aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/symfile.c16
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.base/relocate.exp12
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.*\\.)" \