* infrun.c (resume): If following a fork, reread the current
thread. Avoid dereferencing a possibly dangling pointer.
This commit is contained in:
parent
78bc95e3ba
commit
607cecd2d4
|
@ -1,3 +1,8 @@
|
||||||
|
2008-11-20 Pedro Alves <pedro@codesourcery.com>
|
||||||
|
|
||||||
|
* infrun.c (resume): If following a fork, reread the current
|
||||||
|
thread. Avoid dereferencing a possibly dangling pointer.
|
||||||
|
|
||||||
2008-11-19 Doug Evans <dje@google.com>
|
2008-11-19 Doug Evans <dje@google.com>
|
||||||
|
|
||||||
* inferior.h (proceed_to_finish): Delete, unused.
|
* inferior.h (proceed_to_finish): Delete, unused.
|
||||||
|
|
|
@ -1053,6 +1053,10 @@ a command like `return' or `jump' to continue execution."));
|
||||||
pending_follow.kind = TARGET_WAITKIND_SPURIOUS;
|
pending_follow.kind = TARGET_WAITKIND_SPURIOUS;
|
||||||
if (follow_fork ())
|
if (follow_fork ())
|
||||||
should_resume = 0;
|
should_resume = 0;
|
||||||
|
|
||||||
|
/* Following a child fork will change our notion of current
|
||||||
|
thread. */
|
||||||
|
tp = inferior_thread ();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TARGET_WAITKIND_EXECD:
|
case TARGET_WAITKIND_EXECD:
|
||||||
|
@ -1148,11 +1152,11 @@ a command like `return' or `jump' to continue execution."));
|
||||||
displaced_step_dump_bytes (gdb_stdlog, buf, sizeof (buf));
|
displaced_step_dump_bytes (gdb_stdlog, buf, sizeof (buf));
|
||||||
}
|
}
|
||||||
|
|
||||||
target_resume (resume_ptid, step, sig);
|
|
||||||
|
|
||||||
/* Avoid confusing the next resume, if the next stop/resume
|
/* Avoid confusing the next resume, if the next stop/resume
|
||||||
happens to apply to another thread. */
|
happens to apply to another thread. */
|
||||||
tp->stop_signal = TARGET_SIGNAL_0;
|
tp->stop_signal = TARGET_SIGNAL_0;
|
||||||
|
|
||||||
|
target_resume (resume_ptid, step, sig);
|
||||||
}
|
}
|
||||||
|
|
||||||
discard_cleanups (old_cleanups);
|
discard_cleanups (old_cleanups);
|
||||||
|
|
Loading…
Reference in New Issue