Add low_new_clone method to linux_nat_target.

This patch adds a low_new_clone method to linux_nat_target, called after
a PTRACE_EVENT_CLONE is detected, similar to how low_new_fork is called
after PTRACE_EVENT_(V)FORK.

This is useful for targets that need to copy state associated with a
thread that is inherited across clones.

gdb/ChangeLog:
2020-03-30  Pedro Franco de Carvalho  <pedromfc@linux.ibm.com>

	* linux-nat.h (low_new_clone): New method.
	* linux-nat.c (linux_handle_extended_wait): Call low_new_clone.
This commit is contained in:
Pedro Franco de Carvalho 2020-03-30 12:04:25 -03:00
parent c0502da688
commit 1310c1b066
3 changed files with 13 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2020-03-30 Pedro Franco de Carvalho <pedromfc@linux.ibm.com>
* linux-nat.h (low_new_clone): New method.
* linux-nat.c (linux_handle_extended_wait): Call low_new_clone.
2020-03-29 Simon Marchi <simon.marchi@polymtl.ca>
* dbxread.c (dbx_psymtab_to_symtab_1): Rename to...

View File

@ -1978,6 +1978,10 @@ linux_handle_extended_wait (struct lwp_info *lp, int status)
inferior. */
linux_target->low_new_fork (lp, new_pid);
}
else if (event == PTRACE_EVENT_CLONE)
{
linux_target->low_new_clone (lp, new_pid);
}
if (event == PTRACE_EVENT_FORK
&& linux_fork_checkpointing_p (lp->ptid.pid ()))

View File

@ -164,6 +164,10 @@ public:
virtual void low_new_fork (struct lwp_info *parent, pid_t child_pid)
{}
/* The method to call, if any, when a new clone event is detected. */
virtual void low_new_clone (struct lwp_info *parent, pid_t child_lwp)
{}
/* The method to call, if any, when a process is no longer
attached. */
virtual void low_forget_process (pid_t pid)