From patchwork Sat Nov 25 20:35:30 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 24530 Received: (qmail 68604 invoked by alias); 25 Nov 2017 20:35:37 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 68468 invoked by uid 89); 25 Nov 2017 20:35:37 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.6 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KB_WAM_FROM_NAME_SINGLEWORD, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=bare, 3111, 22448 X-HELO: gateway32.websitewelcome.com Received: from gateway32.websitewelcome.com (HELO gateway32.websitewelcome.com) (192.185.145.187) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 25 Nov 2017 20:35:35 +0000 Received: from cm15.websitewelcome.com (cm15.websitewelcome.com [100.42.49.9]) by gateway32.websitewelcome.com (Postfix) with ESMTP id CF8F98203BC for ; Sat, 25 Nov 2017 14:35:33 -0600 (CST) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with SMTP id IhAjeQO7Q5b6TIhAjebEAK; Sat, 25 Nov 2017 14:35:33 -0600 Received: from 71-218-90-63.hlrn.qwest.net ([71.218.90.63]:48204 helo=bapiya.Home) by box5379.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.89) (envelope-from ) id 1eIhAj-002AMa-KK; Sat, 25 Nov 2017 14:35:33 -0600 From: Tom Tromey To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [RFA v2 1/2] Fix add-symbol-file usage and errors Date: Sat, 25 Nov 2017 13:35:30 -0700 Message-Id: <20171125203531.2891-2-tom@tromey.com> In-Reply-To: <20171125203531.2891-1-tom@tromey.com> References: <20171125203531.2891-1-tom@tromey.com> X-BWhitelist: no X-Source-L: No X-Exim-ID: 1eIhAj-002AMa-KK X-Source-Sender: 71-218-90-63.hlrn.qwest.net (bapiya.Home) [71.218.90.63]:48204 X-Source-Auth: tom+tromey.com X-Email-Count: 2 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes This patch updates add-symbol-file help and error text. It changes add-symbol-file to throw an exception if "-s" is seen but not all of the arguments are given. Previously this was silently ignored. It changes the unrecognized argument message to more clearly state what went wrong. Finally, it updates the usage line in the help text to follow GNU style regarding "metasyntactic variables"; a change I believe should be made to all gdb help messages. ChangeLog 2017-11-25 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. testsuite/ChangeLog 2017-11-25 Tom Tromey * gdb.base/relocate.exp: Update invalid argument test. Add new tests for invalid arguments. --- gdb/ChangeLog | 6 ++++++ gdb/symfile.c | 16 ++++++++++------ gdb/testsuite/ChangeLog | 5 +++++ gdb/testsuite/gdb.base/relocate.exp | 12 ++++++++++-- 4 files changed, 31 insertions(+), 8 deletions(-) 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/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.*\\.)" \