aboutsummaryrefslogtreecommitdiff
path: root/gdb/cli/cli-logging.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2008-10-30 20:35:31 +0000
committerTom Tromey <tromey@redhat.com>2008-10-30 20:35:31 +0000
commit724b958c4168d40f59a35112c36ebf9e02c43d56 (patch)
treef2cd63b030da519b513a58be98a7c010e9464dcb /gdb/cli/cli-logging.c
parenta05016c09e47a026bdbf05d02101c4eb40ac52f5 (diff)
downloadgdb-724b958c4168d40f59a35112c36ebf9e02c43d56.zip
gdb-724b958c4168d40f59a35112c36ebf9e02c43d56.tar.gz
gdb-724b958c4168d40f59a35112c36ebf9e02c43d56.tar.bz2
* cli/cli-logging.c (handle_redirections): Make a cleanup.
* reggroups.c (maintenance_print_reggroups): Make a cleanup. * regcache.c (regcache_print): Make a cleanup. * maint.c (maintenance_print_architecture): Make a cleanup. * dummy-frame.c (maintenance_print_dummy_frames): Make a cleanup.
Diffstat (limited to 'gdb/cli/cli-logging.c')
-rw-r--r--gdb/cli/cli-logging.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gdb/cli/cli-logging.c b/gdb/cli/cli-logging.c
index 86f1bc0..1e941b1 100644
--- a/gdb/cli/cli-logging.c
+++ b/gdb/cli/cli-logging.c
@@ -85,6 +85,7 @@ pop_output_files (void)
static void
handle_redirections (int from_tty)
{
+ struct cleanup *cleanups;
struct ui_file *output;
if (saved_filename != NULL)
@@ -97,6 +98,7 @@ handle_redirections (int from_tty)
output = gdb_fopen (logging_filename, logging_overwrite ? "w" : "a");
if (output == NULL)
perror_with_name (_("set logging"));
+ cleanups = make_cleanup_ui_file_delete (output);
/* Redirects everything to gdb_stdout while this is running. */
if (!logging_redirect)
@@ -104,6 +106,8 @@ handle_redirections (int from_tty)
output = tee_file_new (gdb_stdout, 0, output, 1);
if (output == NULL)
perror_with_name (_("set logging"));
+ discard_cleanups (cleanups);
+ cleanups = make_cleanup_ui_file_delete (output);
if (from_tty)
fprintf_unfiltered (gdb_stdout, "Copying output to %s.\n",
logging_filename);
@@ -112,6 +116,8 @@ handle_redirections (int from_tty)
fprintf_unfiltered (gdb_stdout, "Redirecting output to %s.\n",
logging_filename);
+ discard_cleanups (cleanups);
+
saved_filename = xstrdup (logging_filename);
saved_output.out = gdb_stdout;
saved_output.err = gdb_stderr;