This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[commit/Ada] delete ada-lang.c:extract_string and use target_read_string instead
- From: Joel Brobecker <brobecker at adacore dot com>
- To: gdb-patches at sourceware dot org
- Date: Thu, 16 Apr 2009 10:19:14 -0700
- Subject: [commit/Ada] delete ada-lang.c:extract_string and use target_read_string instead
Just a minor cleanup of ada-lang.c to remove a function that
duplicates another function implemented elsewhere.
2009-04-16 Joel Brobecker <brobecker@adacore.com>
* 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
commit 04d8d0167590b9132f9a0f1e4c06476dbe892bb2
Author: Joel Brobecker <brobecker@adacore.com>
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;
}