Fix fork-related regressions on GNU/Linux
Commit 5cd63fda03
("Fix "Remote 'g' packet reply is too long"
problems with multiple inferiors") caused a number of regressions on
native GNU/Linux, all related to follow-fork support. E.g.:
src/gdb/target.c:3141: internal-error: gdbarch* default_thread_architecture(target_ops*, ptid_t): Assertion `inf != NULL' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n)
Resyncing due to internal error.
FAIL: gdb.base/catch-signal-fork.exp: got SIGHUP after fork (GDB internal error)
This commit fixes it.
gdb/ChangeLog:
2017-10-05 Pedro Alves <palves@redhat.com>
* linux-nat.c (linux_child_follow_fork): When following the parent
and detaching the child, consult the parent thread's architecture
instead of the child's.
This commit is contained in:
parent
d13b8493cb
commit
2fd9d7ca17
2 changed files with 10 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
|||
2017-10-05 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* linux-nat.c (linux_child_follow_fork): When following the parent
|
||||
and detaching the child, consult the parent thread's architecture
|
||||
instead of the child's.
|
||||
|
||||
2017-10-05 Ulrich Weigand <uweigand@de.ibm.com>
|
||||
|
||||
* ax.h: Do not include "doublest.h".
|
||||
|
|
|
@ -510,8 +510,11 @@ linux_child_follow_fork (struct target_ops *ops, int follow_child,
|
|||
To work around this, single step the child process
|
||||
once before detaching to clear the flags. */
|
||||
|
||||
/* Note that we consult the parent's architecture instead of
|
||||
the child's because there's no inferior for the child at
|
||||
this point. */
|
||||
if (!gdbarch_software_single_step_p (target_thread_architecture
|
||||
(child_lp->ptid)))
|
||||
(parent_ptid)))
|
||||
{
|
||||
linux_disable_event_reporting (child_pid);
|
||||
if (ptrace (PTRACE_SINGLESTEP, child_pid, 0, 0) < 0)
|
||||
|
|
Loading…
Add table
Reference in a new issue