mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-12-01 07:50:49 +00:00
* inferiors.c (remove_process): Fix memory leak, free process.
* linux-low.c (linux_remove_process): New function. (linux_kill): Call it instead of remove_process. (linux_detach, linux_wait_1): Ditto.
This commit is contained in:
parent
dc621c3587
commit
5091eb23aa
@ -1,3 +1,10 @@
|
||||
2009-04-30 Doug Evans <dje@google.com>
|
||||
|
||||
* inferiors.c (remove_process): Fix memory leak, free process.
|
||||
* linux-low.c (linux_remove_process): New function.
|
||||
(linux_kill): Call it instead of remove_process.
|
||||
(linux_detach, linux_wait_1): Ditto.
|
||||
|
||||
2009-04-19 Danny Backx <dannybackx@users.sourceforge.net>
|
||||
|
||||
* configure.srv: Add x86 Windows CE target.
|
||||
|
@ -427,12 +427,17 @@ add_process (int pid, int attached)
|
||||
return process;
|
||||
}
|
||||
|
||||
/* Remove a process from the common process list and free the memory
|
||||
allocated for it.
|
||||
The caller is responsible for freeing private data first. */
|
||||
|
||||
void
|
||||
remove_process (struct process_info *process)
|
||||
{
|
||||
clear_symbol_cache (&process->symbol_cache);
|
||||
free_all_breakpoints (process);
|
||||
remove_inferior (&all_processes, &process->head);
|
||||
free (process);
|
||||
}
|
||||
|
||||
struct process_info *
|
||||
|
@ -182,6 +182,16 @@ linux_add_process (int pid, int attached)
|
||||
return proc;
|
||||
}
|
||||
|
||||
/* Remove a process from the common process list,
|
||||
also freeing all private data. */
|
||||
|
||||
static void
|
||||
linux_remove_process (struct process_info *process)
|
||||
{
|
||||
free (process->private);
|
||||
remove_process (process);
|
||||
}
|
||||
|
||||
/* Handle a GNU/Linux extended wait response. If we see a clone
|
||||
event, we need to add the new LWP to our list (and not report the
|
||||
trap to higher layers). */
|
||||
@ -565,7 +575,7 @@ linux_kill (int pid)
|
||||
} while (lwpid > 0 && WIFSTOPPED (wstat));
|
||||
|
||||
delete_lwp (lwp);
|
||||
remove_process (process);
|
||||
linux_remove_process (process);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -654,7 +664,7 @@ linux_detach (int pid)
|
||||
|
||||
delete_all_breakpoints ();
|
||||
find_inferior (&all_threads, linux_detach_one_lwp, &pid);
|
||||
remove_process (process);
|
||||
linux_remove_process (process);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1273,7 +1283,7 @@ retry:
|
||||
struct process_info *process = find_process_pid (pid);
|
||||
|
||||
delete_lwp (lwp);
|
||||
remove_process (process);
|
||||
linux_remove_process (process);
|
||||
|
||||
current_inferior = NULL;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user