if (detach_hook) detach_hook ();
if (deprecated_detach_hook) deprecated_detach_hook ();
generic_mourn_inferior (void){  extern int show_breakpoint_hit_counts;  inferior_ptid = null_ptid;  attach_flag = 0;  breakpoint_init_inferior (inf_exited);  registers_changed ();#ifdef CLEAR_DEFERRED_STORES  /* Delete any pending stores to the inferior... */  CLEAR_DEFERRED_STORES;#endif  reopen_exec_file ();  reinit_frame_cache ();  /* It is confusing to the user for ignore counts to stick around     from previous runs of the inferior.  So clear them.  */  /* However, it is more confusing for the ignore counts to disappear when     using hit counts.  So don't clear them if we're counting hits.  */  if (!show_breakpoint_hit_counts)    breakpoint_clear_ignore_counts ();  if (detach_hook)    detach_hook ();}