mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-18 12:24:38 +08:00
Remove cleanup from try_open_exec_file
This removes a cleanup from try_open_exec_file, using std::string to manage the storage instead. gdb/ChangeLog 2018-09-13 Tom Tromey <tom@tromey.com> * exec.c (try_open_exec_file): Use std::string.
This commit is contained in:
parent
803c08d083
commit
97e67fc620
@ -1,3 +1,7 @@
|
||||
2018-09-13 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* exec.c (try_open_exec_file): Use std::string.
|
||||
|
||||
2018-09-13 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* utils.h (gdb_bfd_errmsg): Return std::string.
|
||||
|
11
gdb/exec.c
11
gdb/exec.c
@ -149,11 +149,8 @@ void
|
||||
try_open_exec_file (const char *exec_file_host, struct inferior *inf,
|
||||
symfile_add_flags add_flags)
|
||||
{
|
||||
struct cleanup *old_chain;
|
||||
struct gdb_exception prev_err = exception_none;
|
||||
|
||||
old_chain = make_cleanup (free_current_contents, &prev_err.message);
|
||||
|
||||
/* exec_file_attach and symbol_file_add_main may throw an error if the file
|
||||
cannot be opened either locally or remotely.
|
||||
|
||||
@ -165,6 +162,7 @@ try_open_exec_file (const char *exec_file_host, struct inferior *inf,
|
||||
Even without a symbol file, the remote-based debugging session should
|
||||
continue normally instead of ending abruptly. Hence we catch thrown
|
||||
errors/exceptions in the following code. */
|
||||
std::string saved_message;
|
||||
TRY
|
||||
{
|
||||
/* We must do this step even if exec_file_host is NULL, so that
|
||||
@ -180,7 +178,10 @@ try_open_exec_file (const char *exec_file_host, struct inferior *inf,
|
||||
|
||||
/* Save message so it doesn't get trashed by the catch below. */
|
||||
if (err.message != NULL)
|
||||
prev_err.message = xstrdup (err.message);
|
||||
{
|
||||
saved_message = err.message;
|
||||
prev_err.message = saved_message.c_str ();
|
||||
}
|
||||
}
|
||||
END_CATCH
|
||||
|
||||
@ -197,8 +198,6 @@ try_open_exec_file (const char *exec_file_host, struct inferior *inf,
|
||||
}
|
||||
END_CATCH
|
||||
}
|
||||
|
||||
do_cleanups (old_chain);
|
||||
}
|
||||
|
||||
/* See gdbcore.h. */
|
||||
|
Loading…
Reference in New Issue
Block a user