PR breakpoints/9350:

* varobj.c (varobj_invalidate): Unconditionally free
	all_rootvarobj.
	* symfile.c (syms_from_objfile): Free local_addr when returning
	normally.
	* exec.c (exec_file_attach): Do cleanups before returning.
	(exec_file_command): Likewise.
	* corefile.c (reopen_exec_file): Do cleanups before returning.
	* breakpoint.c (insert_breakpoint_locations): Do cleanups before
	returning.
	(do_vec_free): New function.
	(update_global_location_list): Make a cleanup for old_locations.
	Do cleanups before returning.  Remove unused variable 'e'.
	(find_condition_and_thread): Free result of parsing the
	expression.
	(print_it_typical): Do cleanups before returning.
	(breakpoint_re_set_one): Always free sals.sals.
This commit is contained in:
Tom Tromey
2009-01-08 16:32:30 +00:00
parent e77b97d433
commit f75455520e
6 changed files with 85 additions and 32 deletions

View File

@@ -153,6 +153,7 @@ reopen_exec_file (void)
int res;
struct stat st;
long mtime;
struct cleanup *cleanups;
/* Don't do anything if there isn't an exec file. */
if (exec_bfd == NULL)
@@ -160,7 +161,7 @@ reopen_exec_file (void)
/* If the timestamp of the exec file has changed, reopen it. */
filename = xstrdup (bfd_get_filename (exec_bfd));
make_cleanup (xfree, filename);
cleanups = make_cleanup (xfree, filename);
res = stat (filename, &st);
if (exec_bfd_mtime && exec_bfd_mtime != st.st_mtime)
@@ -170,6 +171,8 @@ reopen_exec_file (void)
this stops GDB from holding the executable open after it
exits. */
bfd_cache_close_all ();
do_cleanups (cleanups);
#endif
}