From: Simon Marchi <simark@simark.ca>
To: Pedro Alves <pedro@palves.net>, gdb-patches@sourceware.org
Subject: Re: [PATCH] Don't explicitly set clone child ptrace options (was: Re: [PATCH v2 04/29] Step over clone syscall w/ breakpoint, TARGET_WAITKIND_THREAD_CLONED)
Date: Fri, 28 Oct 2022 10:50:24 -0400 [thread overview]
Message-ID: <d49ca509-9b33-5c8e-2ae5-9cb6d68847ee@simark.ca> (raw)
In-Reply-To: <f55439af-df39-a010-bdaf-c8208b2d0527@palves.net>
On 10/18/22 08:40, Pedro Alves wrote:
> On 2022-07-21 2:35 a.m., Simon Marchi wrote:
>>> +
>>> + lwp_info *new_lp = add_lwp (child_ptid);
>>> + new_lp->stopped = 1;
>>> +
>>> + /* If the thread_db layer is active, let it record the user
>>> + level thread id and status, and add the thread to GDB's
>>> + list. */
>>> + if (!thread_db_notice_clone (inferior_ptid, new_lp->ptid))
>>> + {
>>> + /* The process is not using thread_db. Add the LWP to
>>> + GDB's list. */
>>> + target_post_attach (new_lp->ptid.lwp ());
>> Can you explain why that target_post_attach call? Oh, I just noticed it
>> was already there. Still, can you explain?
>>
>
> Looks like I added this in the initial native Linux non-stop support, back in
>
> commit 4c28f408dfc2ab71b7995f061cc725d3f217ec9c
> Author: Pedro Alves <palves@redhat.com>
> AuthorDate: Thu Jul 10 22:58:37 2008 +0000
> Commit: Pedro Alves <palves@redhat.com>
> CommitDate: Thu Jul 10 22:58:37 2008 +0000
>
> Non-stop linux native.
>
> (back at CodeSourcery; the email is incorrect due to the cvs->git conversion)
>
> I can't explain the target_post_attach call, it does look unnecessary. Here's a patch
> removing it.
>
> From f02d5043307a2c79b38477e7bcbd369fcf53c104 Mon Sep 17 00:00:00 2001
> From: Pedro Alves <pedro@palves.net>
> Date: Fri, 14 Oct 2022 20:17:36 +0100
> Subject: [PATCH] Don't explicitly set clone child ptrace options
>
> linux_handle_extended_wait calls target_post_attach if we're handling
> a PTRACE_EVENT_CLONE, and libthread_db.so isn't active.
> target_post_attach just calls linux_init_ptrace_procfs to set the
> lwp's ptrace options. However, this is completely unnecessary,
> because, as man ptrace [1] says, options are inherited:
>
> "Flags are inherited by new tracees created and "auto-attached" via
> active PTRACE_O_TRACEFORK, PTRACE_O_TRACEVFORK, or PTRACE_O_TRACECLONE
> options."
>
> This removes the unnecessary call.
>
> [1] - https://man7.org/linux/man-pages/man2/ptrace.2.html
>
> Change-Id: I533eaa60b700f7e40760311fc0d344d0b3f19a78
> ---
> gdb/linux-nat.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
> index d4639766088..2ef278a914f 100644
> --- a/gdb/linux-nat.c
> +++ b/gdb/linux-nat.c
> @@ -1915,7 +1915,6 @@ linux_handle_extended_wait (struct lwp_info *lp, int status)
> {
> /* The process is not using thread_db. Add the LWP to
> GDB's list. */
> - target_post_attach (new_lp->ptid.lwp ());
> add_thread (linux_target, new_lp->ptid);
> }
>
>
> base-commit: 32e876a80f015281cd7fca46e8a589c6cf132d11
> --
> 2.36.0
>
Approved-By: Simon Marchi <simon.marchi@efficios.com>
Simon
next prev parent reply other threads:[~2022-10-28 14:50 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-13 22:24 [PATCH v2 00/29] Step over thread clone and thread exit Pedro Alves
2022-07-13 22:24 ` [PATCH v2 01/29] displaced step: pass down target_waitstatus instead of gdb_signal Pedro Alves
2022-07-20 20:21 ` Simon Marchi
2022-07-13 22:24 ` [PATCH v2 02/29] linux-nat: introduce pending_status_str Pedro Alves
2022-07-20 20:38 ` Simon Marchi
2022-07-13 22:24 ` [PATCH v2 03/29] gdb/linux: Delete all other LWPs immediately on ptrace exec event Pedro Alves
2022-07-21 0:45 ` Simon Marchi
2022-07-13 22:24 ` [PATCH v2 04/29] Step over clone syscall w/ breakpoint, TARGET_WAITKIND_THREAD_CLONED Pedro Alves
2022-07-21 1:35 ` Simon Marchi
2022-10-17 18:54 ` Pedro Alves
2022-10-18 12:40 ` [PATCH] Don't explicitly set clone child ptrace options (was: Re: [PATCH v2 04/29] Step over clone syscall w/ breakpoint, TARGET_WAITKIND_THREAD_CLONED) Pedro Alves
2022-10-28 14:50 ` Simon Marchi [this message]
2022-12-12 20:13 ` [PATCH v2 04/29] Step over clone syscall w/ breakpoint, TARGET_WAITKIND_THREAD_CLONED Pedro Alves
2022-07-13 22:24 ` [PATCH v2 05/29] Support clone events in the remote protocol Pedro Alves
2022-07-21 2:25 ` Simon Marchi
2022-12-12 20:14 ` Pedro Alves
2022-07-13 22:24 ` [PATCH v2 06/29] Avoid duplicate QThreadEvents packets Pedro Alves
2022-07-21 2:30 ` Simon Marchi
2022-12-12 20:14 ` Pedro Alves
2022-07-13 22:24 ` [PATCH v2 07/29] Thread options & clone events (core + remote) Pedro Alves
2022-07-21 3:14 ` Simon Marchi
2022-10-27 19:55 ` [PATCH] enum_flags to_string (was: Re: [PATCH v2 07/29] Thread options & clone events (core + remote)) Pedro Alves
2022-10-28 10:26 ` [PATCH v2] " Pedro Alves
2022-10-28 11:08 ` [PATCH v3] " Pedro Alves
2022-10-28 15:59 ` Simon Marchi
2022-10-28 18:23 ` Pedro Alves
2022-10-31 12:47 ` Simon Marchi
2022-11-07 17:26 ` [PATCH v5] " Pedro Alves
2022-11-07 18:29 ` Simon Marchi
2022-11-08 14:56 ` Pedro Alves
2022-12-12 20:15 ` [PATCH v2 07/29] Thread options & clone events (core + remote) Pedro Alves
2022-07-13 22:24 ` [PATCH v2 08/29] Thread options & clone events (native Linux) Pedro Alves
2022-07-21 12:38 ` Simon Marchi
2022-12-12 20:16 ` Pedro Alves
2022-07-13 22:24 ` [PATCH v2 09/29] Thread options & clone events (Linux GDBserver) Pedro Alves
2022-07-21 13:11 ` Simon Marchi
2022-12-12 20:16 ` Pedro Alves
2022-07-13 22:24 ` [PATCH v2 10/29] gdbserver: Hide and don't detach pending clone children Pedro Alves
2022-07-13 22:24 ` [PATCH v2 11/29] Remove gdb/19675 kfails (displaced stepping + clone) Pedro Alves
2022-07-13 22:24 ` [PATCH v2 12/29] Add test for stepping over clone syscall Pedro Alves
2022-07-13 22:24 ` [PATCH v2 13/29] all-stop/synchronous RSP support thread-exit events Pedro Alves
2022-07-13 22:24 ` [PATCH v2 14/29] gdbserver/linux-low.cc: Ignore event_ptid if TARGET_WAITKIND_IGNORE Pedro Alves
2022-07-13 22:24 ` [PATCH v2 15/29] Introduce GDB_TO_EXIT thread option, fix step-over-thread-exit Pedro Alves
2022-07-13 22:24 ` [PATCH v2 16/29] Implement GDB_TO_EXIT support for Linux GDBserver Pedro Alves
2022-07-13 22:24 ` [PATCH v2 17/29] Implement GDB_TO_EXIT support for native Linux Pedro Alves
2022-07-21 15:26 ` Simon Marchi
2022-12-12 20:17 ` Pedro Alves
2022-07-13 22:24 ` [PATCH v2 18/29] gdb: clear step over information on thread exit (PR gdb/27338) Pedro Alves
2022-07-21 18:12 ` Simon Marchi
2022-12-12 20:18 ` Pedro Alves
2022-07-13 22:24 ` [PATCH v2 19/29] stop_all_threads: (re-)enable async before waiting for stops Pedro Alves
2022-07-21 18:21 ` Simon Marchi
2022-12-12 20:18 ` Pedro Alves
2022-07-13 22:24 ` [PATCH v2 20/29] gdbserver: Queue no-resumed event after thread exit Pedro Alves
2022-07-13 22:24 ` [PATCH v2 21/29] Don't resume new threads if scheduler-locking is in effect Pedro Alves
2022-07-14 5:28 ` Eli Zaretskii
2022-07-21 18:49 ` Simon Marchi
2022-12-12 20:19 ` Pedro Alves
2022-07-13 22:24 ` [PATCH v2 22/29] Report thread exit event for leader if reporting thread exit events Pedro Alves
2022-07-13 22:24 ` [PATCH v2 23/29] Ignore failure to read PC when resuming Pedro Alves
2022-07-13 22:24 ` [PATCH v2 24/29] gdb/testsuite/lib/my-syscalls.S: Refactor new SYSCALL macro Pedro Alves
2022-07-13 22:24 ` [PATCH v2 25/29] Testcases for stepping over thread exit syscall (PR gdb/27338) Pedro Alves
2022-07-13 22:24 ` [PATCH v2 26/29] Document remote clone events, and QThreadOptions packet Pedro Alves
2022-07-14 5:27 ` Eli Zaretskii
2022-07-13 22:24 ` [PATCH v2 27/29] inferior::clear_thread_list always silent Pedro Alves
2022-07-13 22:24 ` [PATCH v2 28/29] Centralize "[Thread ...exited]" notifications Pedro Alves
2022-07-13 22:24 ` [PATCH v2 29/29] Cancel execution command on thread exit, when stepping, nexting, etc Pedro Alves
2022-07-21 19:28 ` [PATCH v2 00/29] Step over thread clone and thread exit Simon Marchi
2022-10-03 13:46 ` Tom de Vries
2022-10-03 18:37 ` Tom de Vries
2022-12-12 20:20 ` Pedro Alves
2022-12-12 20:19 ` Pedro Alves
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d49ca509-9b33-5c8e-2ae5-9cb6d68847ee@simark.ca \
--to=simark@simark.ca \
--cc=gdb-patches@sourceware.org \
--cc=pedro@palves.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).