aboutsummaryrefslogtreecommitdiff
path: root/gdb/monitor.c
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@ericsson.com>2015-07-08 15:41:01 -0400
committerSimon Marchi <simon.marchi@ericsson.com>2015-07-08 15:41:01 -0400
commit7a41607e01b505db895fcebcad618606cfab1ecf (patch)
treec8f059d52da344424dea1638751cd7ecaa014d96 /gdb/monitor.c
parent7e3023528162de7760a0e7e487aa81bbf44cb6a9 (diff)
downloadgdb-7a41607e01b505db895fcebcad618606cfab1ecf.zip
gdb-7a41607e01b505db895fcebcad618606cfab1ecf.tar.gz
gdb-7a41607e01b505db895fcebcad618606cfab1ecf.tar.bz2
Delete program spaces directly when removing inferiors
When deleting an inferior, delete the associated program space as well if it becomes unused. This replaces the "pruning" approach, with which you could forget to call prune_program_spaces (as seen, with the -remove-inferior command, see [1]). This allows to remove the prune_program_spaces function. At the same time, I was able to clean up the delete_inferior* family: - delete_inferior is unused - delete_inferior_silent is only used in monitor_close, but is replaced with discard_all_inferiors [2], so it becomes unused - All remaining calls to delete_inferior_1 are with silent=1, so the parameter is removed - delete_inferior_1 is renamed to delete_inferior I renamed pspace_empty_p to program_space_empty_p. I prefer if the "exported" functions have a more explicit and standard name. Tested on Ubuntu 14.10. [1] https://sourceware.org/ml/gdb-patches/2014-09/msg00717.html [2] See https://sourceware.org/ml/gdb-patches/2015-07/msg00228.html and follow-ups for details. gdb/Changelog: * inferior.c (delete_inferior_1): Rename to ... (delete_inferior): ..., remove 'silent' parameter, delete program space when unused and remove call to prune_program_spaces. Remove the old, unused, delete_inferior. (delete_inferior_silent): Remove. (prune_inferiors): Change call from delete_inferior_1 to delete_inferior and remove 'silent' parameter. Remove call to prune_program_spaces. (remove_inferior_command): Idem. * inferior.h (delete_inferior_1): Rename to... (delete_inferior): ..., remove 'silent' parameter and remove the original delete_inferior. (delete_inferior_silent): Remove. * mi/mi-main.c (mi_cmd_remove_inferior): Change call from delete_inferior_1 to delete_inferior and remove 'silent' parameter. * progspace.c (prune_program_spaces): Remove. (pspace_empty_p): Rename to... (program_space_empty_p): ... and make non-static. (delete_program_space): New. * progspace.h (prune_program_spaces): Remove declaration. (program_space_empty_p): New declaration. (delete_program_space): New declaration. * monitor.c (monitor_close): Replace call to delete_thread_silent and delete_inferior_silent with discard_all_inferiors.
Diffstat (limited to 'gdb/monitor.c')
-rw-r--r--gdb/monitor.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/gdb/monitor.c b/gdb/monitor.c
index c7f5fc7..4657d73 100644
--- a/gdb/monitor.c
+++ b/gdb/monitor.c
@@ -853,8 +853,7 @@ monitor_close (struct target_ops *self)
monitor_desc = NULL;
- delete_thread_silent (monitor_ptid);
- delete_inferior_silent (ptid_get_pid (monitor_ptid));
+ discard_all_inferiors ();
}
/* Terminate the open connection to the remote debugger. Use this