From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25353 invoked by alias); 16 Apr 2009 17:19:27 -0000 Received: (qmail 25345 invoked by uid 22791); 16 Apr 2009 17:19:26 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL,BAYES_00,KAM_STOCKGEN X-Spam-Check-By: sourceware.org Received: from rock.gnat.com (HELO rock.gnat.com) (205.232.38.15) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 16 Apr 2009 17:19:20 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id E10092BAC52 for ; Thu, 16 Apr 2009 13:19:18 -0400 (EDT) Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id QoOtEoeBtsTq for ; Thu, 16 Apr 2009 13:19:18 -0400 (EDT) Received: from joel.gnat.com (localhost.localdomain [127.0.0.1]) by rock.gnat.com (Postfix) with ESMTP id 99D4B2BAC48 for ; Thu, 16 Apr 2009 13:19:18 -0400 (EDT) Received: by joel.gnat.com (Postfix, from userid 1000) id 89775F58C1; Thu, 16 Apr 2009 10:19:14 -0700 (PDT) Date: Thu, 16 Apr 2009 17:19:00 -0000 From: Joel Brobecker To: gdb-patches@sourceware.org Subject: [commit/Ada] delete ada-lang.c:extract_string and use target_read_string instead Message-ID: <20090416171914.GM7557@adacore.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="4Ckj6UjgE2iN1+kY" Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-04/txt/msg00367.txt.bz2 --4Ckj6UjgE2iN1+kY Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-length: 465 Just a minor cleanup of ada-lang.c to remove a function that duplicates another function implemented elsewhere. 2009-04-16 Joel Brobecker * ada-lang.c (extract_string): Delete. (ada_main_name): Reimplement using target_read_string instead of extract_string. This is exercised everytime we do a "start", which looks for the name of the main routine. Tested on x86_64-linux, no regression. Checked in. -- Joel --4Ckj6UjgE2iN1+kY Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="string.diff" Content-length: 1357 commit 04d8d0167590b9132f9a0f1e4c06476dbe892bb2 Author: Joel Brobecker Date: Wed Apr 8 14:55:02 2009 -0700 * ada-lang.c (extract_string): Delete. (ada_main_name): Reimplement using target_read_string instead of extract_string. diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index 54f2590..814a793 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -679,8 +679,7 @@ char * ada_main_name (void) { struct minimal_symbol *msym; - CORE_ADDR main_program_name_addr; - static char main_program_name[1024]; + static char *main_program_name = NULL; /* For Ada, the name of the main procedure is stored in a specific string constant, generated by the binder. Look for that symbol, @@ -691,11 +690,19 @@ ada_main_name (void) if (msym != NULL) { + CORE_ADDR main_program_name_addr; + int err_code; + main_program_name_addr = SYMBOL_VALUE_ADDRESS (msym); if (main_program_name_addr == 0) error (_("Invalid address for Ada main program name.")); - extract_string (main_program_name_addr, main_program_name); + xfree (main_program_name); + target_read_string (main_program_name_addr, &main_program_name, + 1024, &err_code); + + if (err_code != 0) + return NULL; return main_program_name; } --4Ckj6UjgE2iN1+kY--