From: Roman Kisel <romank@linux.microsoft.com>
To: oleg@redhat.com, linux-kernel@vger.kernel.org
Cc: apais@microsoft.com, benhill@microsoft.com,
ssengar@microsoft.com, sunilmut@microsoft.com, vdso@hexbites.dev
Subject: [PATCH 0/1] Get tracer PID without reliance on the proc FS
Date: Thu, 5 Sep 2024 14:27:40 -0700 [thread overview]
Message-ID: <20240905212741.143626-1-romank@linux.microsoft.com> (raw)
For debugging, it might be useful to run the debug trap
instruction to break into the debugger. To detect the debugger
presence, the kernel provides the `/proc/self/status` pseudo-file
that needs to be searched for the "TracerPid:" string.
Provide a prctl command that returns the PID of the tracer if any.
That allows for much simpler logic in the user land, and makes it
possible to detect tracer presence even if PROC_FS is not enabled.
As an example where this might be useful, one might refer to
the standard C++ and Rust libraries. See these links for the details:
* https://en.cppreference.com/w/cpp/utility/breakpoint_if_debugging
* https://lists.llvm.org/pipermail/libcxx-commits/2024-May/083574.html
* https://patchwork-proxy.ozlabs.org/project/gcc/patch/20240601102446.878286-1-jwakely@redhat.com/#3321542
* https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2546r0.html
* https://github.com/rust-lang/rust/pull/129019
Roman Kisel (1):
ptrace: Get tracer PID without reliance on the proc FS
include/uapi/linux/ptrace.h | 1 +
kernel/ptrace.c | 11 ++++++++++-
2 files changed, 11 insertions(+), 1 deletion(-)
base-commit: ad618736883b8970f66af799e34007475fe33a68
--
2.34.1
next reply other threads:[~2024-09-05 21:27 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-05 21:27 Roman Kisel [this message]
2024-09-05 21:27 ` [PATCH 1/1] ptrace: Get tracer PID without reliance on the proc FS Roman Kisel
2024-09-06 11:24 ` Oleg Nesterov
2024-09-06 11:48 ` Oleg Nesterov
2024-09-06 19:09 ` Linus Torvalds
2024-09-06 20:08 ` Roman Kisel
2024-09-06 20:26 ` Linus Torvalds
2024-09-06 21:15 ` Roman Kisel
2024-09-09 16:18 ` Eric W. Biederman
2024-09-09 17:05 ` Oleg Nesterov
2024-09-09 17:34 ` Eric W. Biederman
2024-09-09 17:22 ` Roman Kisel
2024-09-06 20:55 ` Oleg Nesterov
2024-09-06 21:25 ` Roman Kisel
2024-09-08 14:08 ` Oleg Nesterov
2024-09-09 15:19 ` Roman Kisel
2024-09-09 16:42 ` Oleg Nesterov
2024-09-09 17:05 ` Roman Kisel
2024-09-07 19:33 ` kernel test robot
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=20240905212741.143626-1-romank@linux.microsoft.com \
--to=romank@linux.microsoft.com \
--cc=apais@microsoft.com \
--cc=benhill@microsoft.com \
--cc=linux-kernel@vger.kernel.org \
--cc=oleg@redhat.com \
--cc=ssengar@microsoft.com \
--cc=sunilmut@microsoft.com \
--cc=vdso@hexbites.dev \
/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