diff options
author | Tom Tromey <tom@tromey.com> | 2018-08-29 23:05:54 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2018-09-13 16:22:34 -0600 |
commit | 97e67fc62045723db7af6d323ce9c428666ab6f5 (patch) | |
tree | c34d83790ee9520856f90f239045b625c28adb08 /gdb/exec.c | |
parent | 803c08d083556154cd4d27368e58b359e9de8b93 (diff) | |
download | gdb-97e67fc62045723db7af6d323ce9c428666ab6f5.zip gdb-97e67fc62045723db7af6d323ce9c428666ab6f5.tar.gz gdb-97e67fc62045723db7af6d323ce9c428666ab6f5.tar.bz2 |
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.
Diffstat (limited to 'gdb/exec.c')
-rw-r--r-- | gdb/exec.c | 11 |
1 files changed, 5 insertions, 6 deletions
@@ -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. */ |