Blame SOURCES/valgrind-3.13.0-disable-vgdb-child.patch

1af9e5
commit 59af5db9c15d8ea03c1521736fb1f107d66bce08
1af9e5
Author: philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9>
1af9e5
Date:   Sun Jun 25 20:25:50 2017 +0000
1af9e5
1af9e5
    After fork, vgdb activity is polled according to the nr of bbs done :
1af9e5
    once the nr of bbs done reaches the next vgdb poll, a check for vgdb
1af9e5
    activity is done.
1af9e5
    This might lead to the activation of gdbserver after fork.
1af9e5
    Such poll is however not expected, unless the children is
1af9e5
    to be trace.
1af9e5
    This spurious poll in the forked child can cause failures
1af9e5
    depending on the nr of bbs done before the fork, and the
1af9e5
    nr of bbs done between the fork and the exec.
1af9e5
    
1af9e5
    => disable vgdb poll in the child in the cleanup after fork
1af9e5
    in the child, unless the children have to be traced.
1af9e5
    
1af9e5
    
1af9e5
    
1af9e5
    git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16454 a5019735-40e9-0310-863c-91ae7b9d1cf9
1af9e5
1af9e5
diff --git a/coregrind/m_gdbserver/m_gdbserver.c b/coregrind/m_gdbserver/m_gdbserver.c
1af9e5
index 87fbce2..648d543 100644
1af9e5
--- a/coregrind/m_gdbserver/m_gdbserver.c
1af9e5
+++ b/coregrind/m_gdbserver/m_gdbserver.c
1af9e5
@@ -646,6 +646,10 @@ static void gdbserver_cleanup_in_child_after_fork(ThreadId me)
1af9e5
    
1af9e5
    if (VG_(clo_trace_children)) {
1af9e5
       VG_(gdbserver_prerun_action) (me);
1af9e5
+   } else {
1af9e5
+      /* After fork, if we do not trace the children, disable vgdb
1af9e5
+         poll to avoid gdbserver being called unexpectedly. */
1af9e5
+      VG_(disable_vgdb_poll) ();
1af9e5
    }
1af9e5
 }
1af9e5