diff options
author | John Baldwin <jhb@FreeBSD.org> | 2016-06-24 21:00:04 -0700 |
---|---|---|
committer | John Baldwin <jhb@FreeBSD.org> | 2016-07-01 08:35:33 -0700 |
commit | 2c5c2a3321706c28cbf1b85a970a2e32912eb0c8 (patch) | |
tree | 8bf821a89de943c5fb9718649ce00efbfcc6b5be /gdb/ChangeLog | |
parent | 8607ea632c806235554aa2336cf01bf3758c1264 (diff) | |
download | gdb-2c5c2a3321706c28cbf1b85a970a2e32912eb0c8.zip gdb-2c5c2a3321706c28cbf1b85a970a2e32912eb0c8.tar.gz gdb-2c5c2a3321706c28cbf1b85a970a2e32912eb0c8.tar.bz2 |
Fake VFORK_DONE events when following only the parent after a vfork.
FreeBSD does not currently report a ptrace event for a parent process
after it resumes due to the child exiting the shared memory region after
a vfork. Take the same approach used in linux-nat.c in this case of
sleeping for a while and then reporting a fake VFORK_DONE event.
gdb/ChangeLog:
* fbsd-nat.c (struct fbsd_fork_child_info): Rename to ...
(struct fbsd_fork_info): ... this.
(struct fbsd_fork_info) <child>: Rename to ...
(struct fbsd_fork_info) <ptid>: ... this.
(fbsd_pending_children): Update type.
(fbsd_remember_child): Update type and field name.
(fbsd_is_child_pending): Likewise.
(fbsd_pending_vfork_done): New variable.
(fbsd_is_vfork_done_pending): New function.
(fbsd_next_vfork_done): New function.
(fbsd_resume): Don't resume processes with a pending vfork done
event.
(fbsd_wait): Report pending vfork done events.
(fbsd_follow_fork): Delay and record a pending vfork done event
for a vfork parent when detaching the child.
Diffstat (limited to 'gdb/ChangeLog')
-rw-r--r-- | gdb/ChangeLog | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 1a51fb2..58c9c78 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,23 @@ 2016-07-01 John Baldwin <jhb@FreeBSD.org> + * fbsd-nat.c (struct fbsd_fork_child_info): Rename to ... + (struct fbsd_fork_info): ... this. + (struct fbsd_fork_info) <child>: Rename to ... + (struct fbsd_fork_info) <ptid>: ... this. + (fbsd_pending_children): Update type. + (fbsd_remember_child): Update type and field name. + (fbsd_is_child_pending): Likewise. + (fbsd_pending_vfork_done): New variable. + (fbsd_is_vfork_done_pending): New function. + (fbsd_next_vfork_done): New function. + (fbsd_resume): Don't resume processes with a pending vfork done + event. + (fbsd_wait): Report pending vfork done events. + (fbsd_follow_fork): Delay and record a pending vfork done event + for a vfork parent when detaching the child. + +2016-07-01 John Baldwin <jhb@FreeBSD.org> + * fbsd-nat.c (super_resume): Move earlier next to "super_wait". (resume_one_thread_cb): Move below fork following helper code. (resume_all_threads_cb): Likewise. |