summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog8
-rw-r--r--gdb/cli/cli-logging.c6
-rw-r--r--gdb/dummy-frame.c4
-rw-r--r--gdb/maint.c4
-rw-r--r--gdb/regcache.c4
-rw-r--r--gdb/reggroups.c4
6 files changed, 26 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 885f2760536..6bb1c9b288a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2008-10-28 Tom Tromey <tromey@redhat.com>
+
+ * 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.
+
2008-10-30 Tom Tromey <tromey@redhat.com>
* utils.c (make_cleanup_close): Use make_cleanup_dtor.
diff --git a/gdb/cli/cli-logging.c b/gdb/cli/cli-logging.c
index 86f1bc0a75c..1e941b13d8e 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;
diff --git a/gdb/dummy-frame.c b/gdb/dummy-frame.c
index a27de2e28f7..9cc3da73915 100644
--- a/gdb/dummy-frame.c
+++ b/gdb/dummy-frame.c
@@ -265,11 +265,13 @@ maintenance_print_dummy_frames (char *args, int from_tty)
fprint_dummy_frames (gdb_stdout);
else
{
+ struct cleanup *cleanups;
struct ui_file *file = gdb_fopen (args, "w");
if (file == NULL)
perror_with_name (_("maintenance print dummy-frames"));
+ cleanups = make_cleanup_ui_file_delete (file);
fprint_dummy_frames (file);
- ui_file_delete (file);
+ do_cleanups (cleanups);
}
}
diff --git a/gdb/maint.c b/gdb/maint.c
index e64d4feccf2..365e3744c4d 100644
--- a/gdb/maint.c
+++ b/gdb/maint.c
@@ -414,11 +414,13 @@ maintenance_print_architecture (char *args, int from_tty)
gdbarch_dump (current_gdbarch, gdb_stdout);
else
{
+ struct cleanup *cleanups;
struct ui_file *file = gdb_fopen (args, "w");
if (file == NULL)
perror_with_name (_("maintenance print architecture"));
+ cleanups = make_cleanup_ui_file_delete (file);
gdbarch_dump (current_gdbarch, file);
- ui_file_delete (file);
+ do_cleanups (cleanups);
}
}
diff --git a/gdb/regcache.c b/gdb/regcache.c
index 616a6f71817..74ca6f069ff 100644
--- a/gdb/regcache.c
+++ b/gdb/regcache.c
@@ -1104,11 +1104,13 @@ regcache_print (char *args, enum regcache_dump_what what_to_dump)
regcache_dump (get_current_regcache (), gdb_stdout, what_to_dump);
else
{
+ struct cleanup *cleanups;
struct ui_file *file = gdb_fopen (args, "w");
if (file == NULL)
perror_with_name (_("maintenance print architecture"));
+ cleanups = make_cleanup_ui_file_delete (file);
regcache_dump (get_current_regcache (), file, what_to_dump);
- ui_file_delete (file);
+ do_cleanups (cleanups);
}
}
diff --git a/gdb/reggroups.c b/gdb/reggroups.c
index ea2451ed792..a4e1d3178c8 100644
--- a/gdb/reggroups.c
+++ b/gdb/reggroups.c
@@ -234,11 +234,13 @@ maintenance_print_reggroups (char *args, int from_tty)
reggroups_dump (current_gdbarch, gdb_stdout);
else
{
+ struct cleanup *cleanups;
struct ui_file *file = gdb_fopen (args, "w");
if (file == NULL)
perror_with_name (_("maintenance print reggroups"));
+ cleanups = make_cleanup_ui_file_delete (file);
reggroups_dump (current_gdbarch, file);
- ui_file_delete (file);
+ do_cleanups (cleanups);
}
}