Blame SOURCES/gdb-follow-child-stale-parent.patch

7a6771
Problem occurs with python and its get_current_arch () as it selects
7a6771
selected_frame and current_frame while still inferior_ptid is valid for the
7a6771
original parent.  But since this place it is already attached and later
7a6771
unwinders try to access it, breaking:
7a6771
  -PASS: gdb.threads/watchpoint-fork.exp: child: singlethreaded: breakpoint after the first fork
7a6771
  -PASS: gdb.threads/watchpoint-fork.exp: child: singlethreaded: watchpoint after the first fork
7a6771
  -PASS: gdb.threads/watchpoint-fork.exp: child: singlethreaded: breakpoint after the second fork
7a6771
  -PASS: gdb.threads/watchpoint-fork.exp: child: singlethreaded: watchpoint after the second fork
7a6771
  -PASS: gdb.threads/watchpoint-fork.exp: child: singlethreaded: finish
7a6771
  +FAIL: gdb.threads/watchpoint-fork.exp: child: singlethreaded: breakpoint after the first fork
7a6771
  +FAIL: gdb.threads/watchpoint-fork.exp: child: singlethreaded: watchpoint after the first fork
7a6771
  +FAIL: gdb.threads/watchpoint-fork.exp: child: singlethreaded: breakpoint after the second fork
7a6771
  +FAIL: gdb.threads/watchpoint-fork.exp: child: singlethreaded: watchpoint after the second fork
7a6771
  +FAIL: gdb.threads/watchpoint-fork.exp: child: singlethreaded: finish
7a6771
7a6771
--- ./gdb/infrun.c	2009-12-21 20:26:30.000000000 +0100
7a6771
+++ ./gdb/infrun.c	2009-12-21 20:26:11.000000000 +0100
7a6771
@@ -375,6 +375,9 @@ follow_fork (void)
7a6771
 	  }
7a6771
 	else
7a6771
 	  {
7a6771
+	    /* Possibly referenced PARENT is no longer valid.  */
7a6771
+	    reinit_frame_cache ();
7a6771
+
7a6771
 	    /* This pending follow fork event is now handled, one way
7a6771
 	       or another.  The previous selected thread may be gone
7a6771
 	       from the lists by now, but if it is still around, need