public inbox for gdb-testers@sourceware.org
help / color / mirror / Atom feed
From: sergiodj+buildbot@sergiodj.net
To: gdb-testers@sourceware.org
Subject: [binutils-gdb] Handle reinsert breakpoints for vforked child
Date: Fri, 17 Jun 2016 18:03:00 -0000	[thread overview]
Message-ID: <2e7b624b851c34f6bc2ab75fcbc94db75f72eb3a@gdb-build> (raw)

*** TEST RESULTS FOR COMMIT 2e7b624b851c34f6bc2ab75fcbc94db75f72eb3a ***

Author: Yao Qi <yao.qi@linaro.org>
Branch: master
Commit: 2e7b624b851c34f6bc2ab75fcbc94db75f72eb3a

Handle reinsert breakpoints for vforked child

When a thread is doing step-over with reinsert breakpoint, and the
instruction executed is a syscall doing vfork, both parent and child
share the memory, so the reinsert breakpoint in the space is visible
to both of them.  Also, removing the reinsert breakpoints from the
child will effectively remove them from the parent.  We should
carefully manipulate reinsert breakpoints for both processes.

What we are doing here is that

 - uninsert reinsert breakpoints from the parent before cloning the
   breakpoint list.  We use "uninsert" instead of "remove", because
   we need to "reinsert" them back after vfork is done.  In fact,
   "uninsert" removes them from both child and parent process space.
 - reinsert breakpoints in parent process are still copied to child's
   breakpoint list,
 - remove them from child's breakpoint list as what we did for fork,
   at this point, reinsert breakpoints are removed from the child and
   the parent, but they are still tracked by the parent's breakpoint
   list,
 - once vfork is done, "reinsert" them back to the parent,

gdb/gdbserver:

2016-06-17  Yao Qi  <yao.qi@linaro.org>

	* linux-low.c (handle_extended_wait): Call
	uninsert_reinsert_breakpoints for the parent process.  Remove
	reinsert breakpoints from the child process.  Reinsert them to
	the parent process when vfork is done.
	* mem-break.c (uninsert_reinsert_breakpoints): New function.
	(reinsert_reinsert_breakpoints): New function.
	* mem-break.h (uninsert_reinsert_breakpoints): Declare
	(reinsert_reinsert_breakpoints): Declare.


             reply	other threads:[~2016-06-17 18:03 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-17 18:03 sergiodj+buildbot [this message]
2016-06-17 18:08 ` Failures on Debian-i686, branch master sergiodj+buildbot
2016-06-17 18:26 ` Failures on Debian-x86_64-m64, " sergiodj+buildbot
2016-06-17 18:58 ` Failures on Debian-i686-native-extended-gdbserver, " sergiodj+buildbot
2016-06-17 19:28 ` Failures on Debian-s390x-native-extended-gdbserver-m64, " sergiodj+buildbot
2016-06-18  3:33 ` Failures on Fedora-ppc64be-cc-with-index, " sergiodj+buildbot
2016-06-18  4:14 ` Failures on Fedora-ppc64be-native-gdbserver-m64, " sergiodj+buildbot
2016-06-18  4:18 ` Failures on Fedora-ppc64be-native-extended-gdbserver-m64, " sergiodj+buildbot
2016-06-18  5:06 ` Failures on Fedora-ppc64le-native-extended-gdbserver-m64, " sergiodj+buildbot
2016-06-18  5:23 ` Failures on Fedora-ppc64le-native-gdbserver-m64, " sergiodj+buildbot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2e7b624b851c34f6bc2ab75fcbc94db75f72eb3a@gdb-build \
    --to=sergiodj+buildbot@sergiodj.net \
    --cc=gdb-testers@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).