aboutsummaryrefslogtreecommitdiff
path: root/gdb/exceptions.c
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2005-01-16 21:20:06 +0000
committerAndrew Cagney <cagney@redhat.com>2005-01-16 21:20:06 +0000
commit17d92a02195a3dc9d3d3b6d46b22cb187eeccd19 (patch)
treebbcbf99ae0d66e7176859a9ba9efa697c53f4b82 /gdb/exceptions.c
parentae03635710dcd5a17dbe0fbf3971d079281eeede (diff)
downloadgdb-17d92a02195a3dc9d3d3b6d46b22cb187eeccd19.zip
gdb-17d92a02195a3dc9d3d3b6d46b22cb187eeccd19.tar.gz
gdb-17d92a02195a3dc9d3d3b6d46b22cb187eeccd19.tar.bz2
2005-01-16 Andrew Cagney <cagney@gnu.org>
* cli/cli-script.c: Include "exceptions.h". (struct wrapped_read_command_file_args): Define. (wrapped_read_command_file): New function. (script_from_file): Replace direct call to read_command_file by one wrapped by an exception handler. * exceptions.c (throw_it): Free the old message after creating the new. * Makefile.in: Update dependencies. Index: testsuite/ChangeLog 2005-01-16 Andrew Cagney <cagney@gnu.org> * gdb.base/source.exp: Delete KFAIL gdb/1846, simplify.
Diffstat (limited to 'gdb/exceptions.c')
-rw-r--r--gdb/exceptions.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gdb/exceptions.c b/gdb/exceptions.c
index d95c58a..e640b5f 100644
--- a/gdb/exceptions.c
+++ b/gdb/exceptions.c
@@ -360,10 +360,13 @@ throw_it (enum return_reason reason, enum errors error, const char *fmt,
va_list ap)
{
struct exception e;
+ char *new_message;
- /* Save the message. */
+ /* Save the message. Create the new message before deleting the
+ old, the new message may include the old message text. */
+ new_message = xstrvprintf (fmt, ap);
xfree (last_message);
- last_message = xstrvprintf (fmt, ap);
+ last_message = new_message;
/* Create the exception. */
e.reason = reason;