summaryrefslogtreecommitdiffstats
path: root/po/es/man2/ptrace.2.po
diff options
context:
space:
mode:
Diffstat (limited to 'po/es/man2/ptrace.2.po')
-rw-r--r--po/es/man2/ptrace.2.po4026
1 files changed, 4026 insertions, 0 deletions
diff --git a/po/es/man2/ptrace.2.po b/po/es/man2/ptrace.2.po
new file mode 100644
index 00000000..5f4efcb4
--- /dev/null
+++ b/po/es/man2/ptrace.2.po
@@ -0,0 +1,4026 @@
+# Spanish translation of manpages
+# This file is distributed under the same license as the manpages-l10n package.
+# Copyright © of this file:
+# Gerardo Aburruzaga García <gerardo.aburruzaga@uca.es>, 1998.
+# Juan Piernas <piernas@ditec.um.es>, 2000.
+msgid ""
+msgstr ""
+"Project-Id-Version: manpages-l10n\n"
+"POT-Creation-Date: 2024-03-01 17:05+0100\n"
+"PO-Revision-Date: 2000-01-08 19:53+0200\n"
+"Last-Translator: Juan Piernas <piernas@ditec.um.es>\n"
+"Language-Team: Spanish <debian-l10n-spanish@lists.debian.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Lokalize 20.04.1\n"
+
+#. type: TH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid "B<xtrace>"
+msgid "ptrace"
+msgstr "B<xtrace>"
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "2023-10-31"
+msgstr "31 Octubre 2023"
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "Linux man-pages 6.06"
+msgstr "Páginas de manual de Linux 6.06"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "NAME"
+msgstr "NOMBRE"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "ptrace - process trace"
+msgstr "ptrace - rastreo de un proceso"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "LIBRARY"
+msgstr "BIBLIOTECA"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Standard C library (I<libc>, I<-lc>)"
+msgstr "Biblioteca Estándar C (I<libc>, I<-lc>)"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "SINOPSIS"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<#include E<lt>sys/ptrace.hE<gt>>\n"
+msgstr "B<#include E<lt>sys/ptrace.hE<gt>>\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"B<long ptrace(enum __ptrace_request >I<request>B<, pid_t >I<pid>B<,>\n"
+"B< void *>I<addr>B<, void *>I<data>B<);>\n"
+msgstr ""
+"B<long ptrace(enum __ptrace_request >I<petición>B<, pid_t >I<pid>B<,>\n"
+"B< void *>I<direc>B<, void *>I<datos>B<);>\n"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr "DESCRIPCIÓN"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "The B<ptrace> system call provides a means by which a parent process may "
+#| "observe and control the execution of another process, and examine and "
+#| "change its core image and registers. It is primarily used to implement "
+#| "breakpoint debugging and system call tracing."
+msgid ""
+"The B<ptrace>() system call provides a means by which one process (the "
+"\"tracer\") may observe and control the execution of another process (the "
+"\"tracee\"), and examine and change the tracee's memory and registers. It "
+"is primarily used to implement breakpoint debugging and system call tracing."
+msgstr ""
+"La llamada al sistema B<ptrace> proporciona un medio por el que un proceso "
+"padre puede observar y controlar la ejecución de otro proceso y examinar y "
+"cambiar su imagen de memoria y registros. Se usa principalmente en la "
+"implementación de depuración con puntos de ruptura y en el rastreo de "
+"llamadas al sistema."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A tracee first needs to be attached to the tracer. Attachment and "
+"subsequent commands are per thread: in a multithreaded process, every thread "
+"can be individually attached to a (potentially different) tracer, or left "
+"not attached and thus not debugged. Therefore, \"tracee\" always means "
+"\"(one) thread\", never \"a (possibly multithreaded) process\". Ptrace "
+"commands are always sent to a specific tracee using a call of the form"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid " ptrace(PTRACE_foo, pid, ...)\n"
+msgid "ptrace(PTRACE_foo, pid, ...)\n"
+msgstr " ptrace(PTRACE_foo, pid, ...)\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "where I<pid> is the thread ID of the corresponding Linux thread."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"(Note that in this page, a \"multithreaded process\" means a thread group "
+"consisting of threads created using the B<clone>(2) B<CLONE_THREAD> flag.)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "The parent can initiate a trace by calling B<fork>(2) and having the "
+#| "resulting child do a PTRACE_TRACEME, followed (typically) by an "
+#| "B<exec>(3). Alternatively, the parent may commence trace of an existing "
+#| "process using PTRACE_ATTACH."
+msgid ""
+"A process can initiate a trace by calling B<fork>(2) and having the "
+"resulting child do a B<PTRACE_TRACEME>, followed (typically) by an "
+"B<execve>(2). Alternatively, one process may commence tracing another "
+"process using B<PTRACE_ATTACH> or B<PTRACE_SEIZE>."
+msgstr ""
+"El padre puede inicar un rastreo llamando a B<fork>(2) haciendo que el hijo "
+"restultante realice un PTRACE_TRACEME, seguido (normalmente) por un "
+"B<exec>(3). Alternativamente, el padre puede comenzar a rastrear un proceso "
+"existente usando PTRACE_ATTACH."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "While being traced, the child will stop each time a signal is delivered, "
+#| "even if the signal is being ignored. (The exception is SIGKILL, which "
+#| "has its usual effect.) The parent will be notified at its next "
+#| "B<wait>(2) and may inspect and modify the child process while it is "
+#| "stopped. The parent then causes the child to continue, optionally "
+#| "ignoring the delivered signal (or even delivering a different signal "
+#| "instead)."
+msgid ""
+"While being traced, the tracee will stop each time a signal is delivered, "
+"even if the signal is being ignored. (An exception is B<SIGKILL>, which has "
+"its usual effect.) The tracer will be notified at its next call to "
+"B<waitpid>(2) (or one of the related \"wait\" system calls); that call will "
+"return a I<status> value containing information that indicates the cause of "
+"the stop in the tracee. While the tracee is stopped, the tracer can use "
+"various ptrace requests to inspect and modify the tracee. The tracer then "
+"causes the tracee to continue, optionally ignoring the delivered signal (or "
+"even delivering a different signal instead)."
+msgstr ""
+"Mientras está siendo rastreado, el hijo se detendrá cada vez que reciba una "
+"señal, aun cuando la señal se haya ignorado. (La excepción es SIGKILL que "
+"tiene su efecto habitual.) El padre será informado en su siguiente "
+"B<wait>(2) y puede inspeccionar y modificar el proceso hijo mientras está "
+"parado. A continuación, el padre puede hacer que el hijo continúe, "
+"ignorando opcionalmente la señal recibida (o incluso entregando una señal "
+"distinta en su lugar)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If the B<PTRACE_O_TRACEEXEC> option is not in effect, all successful calls "
+"to B<execve>(2) by the traced process will cause it to be sent a B<SIGTRAP> "
+"signal, giving the parent a chance to gain control before the new program "
+"begins execution."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "When the parent is finished tracing, it can terminate the child with "
+#| "PTRACE_KILL or cause it to continue executing in a normal, untraced mode "
+#| "via PTRACE_DETACH."
+msgid ""
+"When the tracer is finished tracing, it can cause the tracee to continue "
+"executing in a normal, untraced mode via B<PTRACE_DETACH>."
+msgstr ""
+"Cuando el padre termina de rastrear, puede terminar el hijo con PTRACE_KILL "
+"o hace que se continúe ejecutando en un modo normal sin rastreo mediante "
+"PTRACE_DETACH."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The value of I<request> determines the action to be performed:"
+msgstr "El valor del argumento I<petición> determina la acción a realizar:"
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_TRACEME>"
+msgstr "B<PTRACE_TRACEME>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Indicate that this process is to be traced by its parent. A process "
+"probably shouldn't make this request if its parent isn't expecting to trace "
+"it. (I<pid>, I<addr>, and I<data> are ignored.)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "The above request is used only by the child process; the rest are used "
+#| "only by the parent. In the following requests, I<pid> specifies the "
+#| "child process to be acted on. For requests other than PTRACE_KILL, the "
+#| "child process must be stopped."
+msgid ""
+"The B<PTRACE_TRACEME> request is used only by the tracee; the remaining "
+"requests are used only by the tracer. In the following requests, I<pid> "
+"specifies the thread ID of the tracee to be acted on. For requests other "
+"than B<PTRACE_ATTACH>, B<PTRACE_SEIZE>, B<PTRACE_INTERRUPT>, and "
+"B<PTRACE_KILL>, the tracee must be stopped."
+msgstr ""
+"La petición anterior la usa sólo el proceso hijo. El resto las usa sólo el "
+"padre. En las siguientes peticiones, I<pid> indica el proceso hijo sobre el "
+"que se actuará. Para peticiones distintas de PTRACE_KILL, el proceso hijo "
+"debe estar parado."
+
+#. type: TP
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, fuzzy, no-wrap
+#| msgid "B<PTRACE_EVENT_EXIT>"
+msgid "B<PTRACE_PEEKTEXT>"
+msgstr "B<PTRACE_EVENT_EXIT>"
+
+#. type: TQ
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, fuzzy, no-wrap
+#| msgid "B<PTRACE_PEEKUSER>"
+msgid "B<PTRACE_PEEKDATA>"
+msgstr "B<PTRACE_PEEKUSER>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+msgid ""
+"Read a word at the address I<addr> in the tracee's memory, returning the "
+"word as the result of the B<ptrace>() call. Linux does not have separate "
+"text and data address spaces, so these two requests are currently "
+"equivalent. (I<data> is ignored; but see NOTES.)"
+msgstr "Lee una palabra de la posición I<direc>."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_PEEKUSER>"
+msgstr "B<PTRACE_PEEKUSER>"
+
+#. PTRACE_PEEKUSR in kernel source, but glibc uses PTRACE_PEEKUSER,
+#. and that is the name that seems common on other systems.
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "Reads a word at offset I<addr> in the child's B<USER> area, which holds "
+#| "the registers and other information about the process (see E<lt>linux/"
+#| "user.hE<gt> and E<lt>sys/user.hE<gt>). The word is returned as the "
+#| "result of the B<ptrace> call. Typically the offset must be word-aligned, "
+#| "though this might vary by architecture. (I<data> is ignored.)"
+msgid ""
+"Read a word at offset I<addr> in the tracee's USER area, which holds the "
+"registers and other information about the process (see I<E<lt>sys/user."
+"hE<gt>>). The word is returned as the result of the B<ptrace>() call. "
+"Typically, the offset must be word-aligned, though this might vary by "
+"architecture. See NOTES. (I<data> is ignored; but see NOTES.)"
+msgstr ""
+"Lee una palabra en el desplazamiento I<direc> del área B<USER> del hijo, que "
+"contiene los registros y otra información sobre el proceso (vea E<lt>linux/"
+"user.hE<gt> y E<lt>sys/user.hE<gt>). La palabra se devuelve como resultado "
+"de la llamada B<ptrace>. Típicamente, el desplazamiento debe está alineado "
+"en una frontera de palabra, aunque esto podría variar en cada arquitectura. "
+"(I<datos> se ignora)."
+
+#. type: TP
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, fuzzy, no-wrap
+#| msgid "B<PTRACE_POKEUSER>"
+msgid "B<PTRACE_POKETEXT>"
+msgstr "B<PTRACE_POKEUSER>"
+
+#. type: TQ
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, fuzzy, no-wrap
+#| msgid "B<PTRACE_POKEUSER>"
+msgid "B<PTRACE_POKEDATA>"
+msgstr "B<PTRACE_POKEUSER>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "Copies the word I<data> to location I<addr> in the child's memory. As "
+#| "above, the two requests are currently equivalent."
+msgid ""
+"Copy the word I<data> to the address I<addr> in the tracee's memory. As for "
+"B<PTRACE_PEEKTEXT> and B<PTRACE_PEEKDATA>, these two requests are currently "
+"equivalent."
+msgstr ""
+"Copia una palabra de la posición I<datos> a la posición I<direc> de la "
+"memoria del hijo. Como antes, las dos peticiones son actualmente "
+"equivalentes."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_POKEUSER>"
+msgstr "B<PTRACE_POKEUSER>"
+
+#. PTRACE_POKEUSR in kernel source, but glibc uses PTRACE_POKEUSER,
+#. and that is the name that seems common on other systems.
+#. FIXME In the preceding sentence, which modifications are disallowed,
+#. and when they are disallowed, how does user space discover that fact?
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "Copies the word I<data> to offset I<addr> in the child's B<USER> area. "
+#| "As above, the offset must typically be word-aligned. In order to "
+#| "maintain the integrity of the kernel, some modifications to the B<USER> "
+#| "area are disallowed."
+msgid ""
+"Copy the word I<data> to offset I<addr> in the tracee's USER area. As for "
+"B<PTRACE_PEEKUSER>, the offset must typically be word-aligned. In order to "
+"maintain the integrity of the kernel, some modifications to the USER area "
+"are disallowed."
+msgstr ""
+"Copia una palabra de la posición I<datos> al desplazamiento I<direc> en el "
+"área B<USER> del hijo. Al igual que antes, el desplazamiento debe estar "
+"típicamente alineado en una frontera de palabra. Para conservar la "
+"integridad del núcleo, algunas modificaciones al área B<USER> se encuentran "
+"deshabilitadas."
+
+#. type: TP
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, fuzzy, no-wrap
+#| msgid "B<PTRACE_TRACEME>"
+msgid "B<PTRACE_GETREGS>"
+msgstr "B<PTRACE_TRACEME>"
+
+#. type: TQ
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, fuzzy, no-wrap
+#| msgid "B<PTRACE_MODE_FSCREDS>"
+msgid "B<PTRACE_GETFPREGS>"
+msgstr "B<PTRACE_MODE_FSCREDS>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Copy the tracee's general-purpose or floating-point registers, respectively, "
+"to the address I<data> in the tracer. See I<E<lt>sys/user.hE<gt>> for "
+"information on the format of this data. (I<addr> is ignored.) Note that "
+"SPARC systems have the meaning of I<data> and I<addr> reversed; that is, "
+"I<data> is ignored and the registers are copied to the address I<addr>. "
+"B<PTRACE_GETREGS> and B<PTRACE_GETFPREGS> are not present on all "
+"architectures."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_GETREGSET> (since Linux 2.6.34)"
+msgstr "B<PTRACE_GETREGSET> (desde Linux 2.6.34)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Read the tracee's registers. I<addr> specifies, in an architecture-"
+"dependent way, the type of registers to be read. B<NT_PRSTATUS> (with "
+"numerical value 1) usually results in reading of general-purpose "
+"registers. If the CPU has, for example, floating-point and/or vector "
+"registers, they can be retrieved by setting I<addr> to the corresponding "
+"B<NT_foo> constant. I<data> points to a B<struct iovec>, which describes "
+"the destination buffer's location and length. On return, the kernel "
+"modifies B<iov.len> to indicate the actual number of bytes returned."
+msgstr ""
+
+#. type: TP
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, fuzzy, no-wrap
+#| msgid "B<PTRACE_TRACEME>"
+msgid "B<PTRACE_SETREGS>"
+msgstr "B<PTRACE_TRACEME>"
+
+#. type: TQ
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, fuzzy, no-wrap
+#| msgid "B<PTRACE_MODE_FSCREDS>"
+msgid "B<PTRACE_SETFPREGS>"
+msgstr "B<PTRACE_MODE_FSCREDS>"
+
+#. FIXME . In the preceding sentence, which modifications are disallowed,
+#. and when they are disallowed, how does user space discover that fact?
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Modify the tracee's general-purpose or floating-point registers, "
+"respectively, from the address I<data> in the tracer. As for "
+"B<PTRACE_POKEUSER>, some general-purpose register modifications may be "
+"disallowed. (I<addr> is ignored.) Note that SPARC systems have the meaning "
+"of I<data> and I<addr> reversed; that is, I<data> is ignored and the "
+"registers are copied from the address I<addr>. B<PTRACE_SETREGS> and "
+"B<PTRACE_SETFPREGS> are not present on all architectures."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_SETREGSET> (since Linux 2.6.34)"
+msgstr "B<PTRACE_SETREGSET> (desde Linux 2.6.34)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Modify the tracee's registers. The meaning of I<addr> and I<data> is "
+"analogous to B<PTRACE_GETREGSET>."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_GETSIGINFO> (since Linux 2.3.99-pre6)"
+msgstr "B<PTRACE_GETSIGINFO> (desde Linux 2.3.99-pre6)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Retrieve information about the signal that caused the stop. Copy a "
+"I<siginfo_t> structure (see B<sigaction>(2)) from the tracee to the address "
+"I<data> in the tracer. (I<addr> is ignored.)"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_SETSIGINFO> (since Linux 2.3.99-pre6)"
+msgstr "B<PTRACE_SETSIGINFO> (desde Linux 2.3.99-pre6)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Set signal information: copy a I<siginfo_t> structure from the address "
+"I<data> in the tracer to the tracee. This will affect only signals that "
+"would normally be delivered to the tracee and were caught by the tracer. It "
+"may be difficult to tell these normal signals from synthetic signals "
+"generated by B<ptrace>() itself. (I<addr> is ignored.)"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_PEEKSIGINFO> (since Linux 3.10)"
+msgstr "B<PTRACE_PEEKSIGINFO> (desde Linux 3.10)"
+
+#. commit 84c751bd4aebbaae995fe32279d3dba48327bad4
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Retrieve I<siginfo_t> structures without removing signals from a queue. "
+"I<addr> points to a I<ptrace_peeksiginfo_args> structure that specifies the "
+"ordinal position from which copying of signals should start, and the number "
+"of signals to copy. I<siginfo_t> structures are copied into the buffer "
+"pointed to by I<data>. The return value contains the number of copied "
+"signals (zero indicates that there is no signal corresponding to the "
+"specified ordinal position). Within the returned I<siginfo> structures, the "
+"I<si_code> field includes information (B<__SI_CHLD>, B<__SI_FAULT>, etc.) "
+"that are not otherwise exposed to user space."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"struct ptrace_peeksiginfo_args {\n"
+" u64 off; /* Ordinal position in queue at which\n"
+" to start copying signals */\n"
+" u32 flags; /* PTRACE_PEEKSIGINFO_SHARED or 0 */\n"
+" s32 nr; /* Number of signals to copy */\n"
+"};\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Currently, there is only one flag, B<PTRACE_PEEKSIGINFO_SHARED>, for dumping "
+"signals from the process-wide signal queue. If this flag is not set, "
+"signals are read from the per-thread queue of the specified thread."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_GETSIGMASK> (since Linux 3.11)"
+msgstr "B<PTRACE_GETSIGMASK> (desde Linux 3.11)"
+
+#. commit 29000caecbe87b6b66f144f72111f0d02fbbf0c1
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Place a copy of the mask of blocked signals (see B<sigprocmask>(2)) in the "
+"buffer pointed to by I<data>, which should be a pointer to a buffer of type "
+"I<sigset_t>. The I<addr> argument contains the size of the buffer pointed "
+"to by I<data> (i.e., I<sizeof(sigset_t)>)."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_SETSIGMASK> (since Linux 3.11)"
+msgstr "B<PTRACE_SETSIGMASK> (desde Linux 3.11)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Change the mask of blocked signals (see B<sigprocmask>(2)) to the value "
+"specified in the buffer pointed to by I<data>, which should be a pointer to "
+"a buffer of type I<sigset_t>. The I<addr> argument contains the size of the "
+"buffer pointed to by I<data> (i.e., I<sizeof(sigset_t)>)."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_SETOPTIONS> (since Linux 2.4.6; see BUGS for caveats)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Set ptrace options from I<data>. (I<addr> is ignored.) I<data> is "
+"interpreted as a bit mask of options, which are specified by the following "
+"flags:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_O_EXITKILL> (since Linux 3.8)"
+msgstr "B<PTRACE_O_EXITKILL> (desde Linux 3.8)"
+
+#. commit 992fb6e170639b0849bace8e49bf31bd37c4123
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Send a B<SIGKILL> signal to the tracee if the tracer exits. This option is "
+"useful for ptrace jailers that want to ensure that tracees can never escape "
+"the tracer's control."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_O_TRACECLONE> (since Linux 2.5.46)"
+msgstr "B<PTRACE_O_TRACECLONE> (desde Linux 2.5.46)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Stop the tracee at the next B<clone>(2) and automatically start tracing the "
+"newly cloned process, which will start with a B<SIGSTOP>, or "
+"B<PTRACE_EVENT_STOP> if B<PTRACE_SEIZE> was used. A B<waitpid>(2) by the "
+"tracer will return a I<status> value such that"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid " statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_CLONEE<lt>E<lt>8))\n"
+msgstr " statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_CLONEE<lt>E<lt>8))\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The PID of the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This option may not catch B<clone>(2) calls in all cases. If the tracee "
+"calls B<clone>(2) with the B<CLONE_VFORK> flag, B<PTRACE_EVENT_VFORK> will "
+"be delivered instead if B<PTRACE_O_TRACEVFORK> is set; otherwise if the "
+"tracee calls B<clone>(2) with the exit signal set to B<SIGCHLD>, "
+"B<PTRACE_EVENT_FORK> will be delivered if B<PTRACE_O_TRACEFORK> is set."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_O_TRACEEXEC> (since Linux 2.5.46)"
+msgstr "B<PTRACE_O_TRACEEXEC> (desde Linux 2.5.46)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Stop the tracee at the next B<execve>(2). A B<waitpid>(2) by the tracer "
+"will return a I<status> value such that"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid " statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_EXECE<lt>E<lt>8))\n"
+msgstr " statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_EXECE<lt>E<lt>8))\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If the execing thread is not a thread group leader, the thread ID is reset "
+"to thread group leader's ID before this stop. Since Linux 3.0, the former "
+"thread ID can be retrieved with B<PTRACE_GETEVENTMSG>."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_O_TRACEEXIT> (since Linux 2.5.60)"
+msgstr "B<PTRACE_O_TRACEEXIT> (desde Linux 2.5.60)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Stop the tracee at exit. A B<waitpid>(2) by the tracer will return a "
+"I<status> value such that"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid " statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_EXITE<lt>E<lt>8))\n"
+msgstr " statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_EXITE<lt>E<lt>8))\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The tracee's exit status can be retrieved with B<PTRACE_GETEVENTMSG>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The tracee is stopped early during process exit, when registers are still "
+"available, allowing the tracer to see where the exit occurred, whereas the "
+"normal exit notification is done after the process is finished exiting. "
+"Even though context is available, the tracer cannot prevent the exit from "
+"happening at this point."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_O_TRACEFORK> (since Linux 2.5.46)"
+msgstr "B<PTRACE_O_TRACEFORK> (desde Linux 2.5.46)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Stop the tracee at the next B<fork>(2) and automatically start tracing the "
+"newly forked process, which will start with a B<SIGSTOP>, or "
+"B<PTRACE_EVENT_STOP> if B<PTRACE_SEIZE> was used. A B<waitpid>(2) by the "
+"tracer will return a I<status> value such that"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid " statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_FORKE<lt>E<lt>8))\n"
+msgstr " statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_FORKE<lt>E<lt>8))\n"
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_O_TRACESYSGOOD> (since Linux 2.4.6)"
+msgstr "B<PTRACE_O_TRACESYSGOOD> (desde Linux 2.4.6)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"When delivering system call traps, set bit 7 in the signal number (i.e., "
+"deliver I<SIGTRAP|0x80>). This makes it easy for the tracer to distinguish "
+"normal traps from those caused by a system call."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_O_TRACEVFORK> (since Linux 2.5.46)"
+msgstr "B<PTRACE_O_TRACEVFORK> (desde Linux 2.5.46)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Stop the tracee at the next B<vfork>(2) and automatically start tracing the "
+"newly vforked process, which will start with a B<SIGSTOP>, or "
+"B<PTRACE_EVENT_STOP> if B<PTRACE_SEIZE> was used. A B<waitpid>(2) by the "
+"tracer will return a I<status> value such that"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid " statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_VFORKE<lt>E<lt>8))\n"
+msgstr " statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_VFORKE<lt>E<lt>8))\n"
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_O_TRACEVFORKDONE> (since Linux 2.5.60)"
+msgstr "B<PTRACE_O_TRACEVFORKDONE> (desde Linux 2.5.60)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Stop the tracee at the completion of the next B<vfork>(2). A B<waitpid>(2) "
+"by the tracer will return a I<status> value such that"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid " statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_VFORK_DONEE<lt>E<lt>8))\n"
+msgstr " statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_VFORK_DONEE<lt>E<lt>8))\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The PID of the new process can (since Linux 2.6.18) be retrieved with "
+"B<PTRACE_GETEVENTMSG>."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_O_TRACESECCOMP> (since Linux 3.5)"
+msgstr "B<PTRACE_O_TRACESECCOMP> (desde Linux 3.5)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Stop the tracee when a B<seccomp>(2) B<SECCOMP_RET_TRACE> rule is "
+"triggered. A B<waitpid>(2) by the tracer will return a I<status> value "
+"such that"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid " statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_SECCOMPE<lt>E<lt>8))\n"
+msgstr " statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_SECCOMPE<lt>E<lt>8))\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"While this triggers a B<PTRACE_EVENT> stop, it is similar to a syscall-enter-"
+"stop. For details, see the note on B<PTRACE_EVENT_SECCOMP> below. The "
+"seccomp event message data (from the B<SECCOMP_RET_DATA> portion of the "
+"seccomp filter rule) can be retrieved with B<PTRACE_GETEVENTMSG>."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_O_SUSPEND_SECCOMP> (since Linux 4.3)"
+msgstr "B<PTRACE_O_SUSPEND_SECCOMP> (desde Linux 4.3)"
+
+#. commit 13c4a90119d28cfcb6b5bdd820c233b86c2b0237
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Suspend the tracee's seccomp protections. This applies regardless of mode, "
+"and can be used when the tracee has not yet installed seccomp filters. That "
+"is, a valid use case is to suspend a tracee's seccomp protections before "
+"they are installed by the tracee, let the tracee install the filters, and "
+"then clear this flag when the filters should be resumed. Setting this "
+"option requires that the tracer have the B<CAP_SYS_ADMIN> capability, not "
+"have any seccomp protections installed, and not have "
+"B<PTRACE_O_SUSPEND_SECCOMP> set on itself."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_GETEVENTMSG> (since Linux 2.5.46)"
+msgstr "B<PTRACE_GETEVENTMSG> (desde Linux 2.5.46)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Retrieve a message (as an I<unsigned long>) about the ptrace event that "
+"just happened, placing it at the address I<data> in the tracer. For "
+"B<PTRACE_EVENT_EXIT>, this is the tracee's exit status. For "
+"B<PTRACE_EVENT_FORK>, B<PTRACE_EVENT_VFORK>, B<PTRACE_EVENT_VFORK_DONE>, and "
+"B<PTRACE_EVENT_CLONE>, this is the PID of the new process. For "
+"B<PTRACE_EVENT_SECCOMP>, this is the B<seccomp>(2) filter's "
+"B<SECCOMP_RET_DATA> associated with the triggered rule. (I<addr> is "
+"ignored.)"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_CONT>"
+msgstr "B<PTRACE_CONT>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "Restarts the stopped child process. If I<data> is non-zero and not "
+#| "SIGSTOP, it is interpreted as a signal to be delivered to the child; "
+#| "otherwise, no signal is delivered. Thus, for example, the parent can "
+#| "control whether a signal sent to the child is delivered or not. (I<addr> "
+#| "is ignored.)"
+msgid ""
+"Restart the stopped tracee process. If I<data> is nonzero, it is "
+"interpreted as the number of a signal to be delivered to the tracee; "
+"otherwise, no signal is delivered. Thus, for example, the tracer can "
+"control whether a signal sent to the tracee is delivered or not. (I<addr> "
+"is ignored.)"
+msgstr ""
+"Reinicia el proceso hijo parado. Si I<datos> no es cero y tampoco SIGSTOP se "
+"interpreta como una señal que se entregará al hijo. En otro caso, no se "
+"entrega ninguna señal. Así, por ejemplo, el padre puede controlar si una "
+"señal enviada al hijo es entregada o no. (I<direc> se ignora.)"
+
+#. type: TP
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, fuzzy, no-wrap
+#| msgid "B<PTRACE_KILL>"
+msgid "B<PTRACE_SYSCALL>"
+msgstr "B<PTRACE_KILL>"
+
+#. type: TQ
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, fuzzy, no-wrap
+#| msgid "PTRACE_SYSCALL, PTRACE_SINGLESTEP"
+msgid "B<PTRACE_SINGLESTEP>"
+msgstr "PTRACE_SYSCALL, PTRACE_SINGLESTEP"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "Restarts the stopped child as for PTRACE_CONT, but arranges for the child "
+#| "to be stopped at the next entry to or exit from a system call, or after "
+#| "execution of a single instruction, respectively. (The child will also, "
+#| "as usual, be stopped upon receipt of a signal.) From the parent's "
+#| "perspective, the child will appear to have been stopped by receipt of a "
+#| "SIGTRAP. So, for PTRACE_SYSCALL, for example, the idea is to inspect the "
+#| "arguments to the system call at the first stop, then do another "
+#| "PTRACE_SYSCALL and inspect the return value of the system call at the "
+#| "second stop. (I<addr> is ignored.)"
+msgid ""
+"Restart the stopped tracee as for B<PTRACE_CONT>, but arrange for the tracee "
+"to be stopped at the next entry to or exit from a system call, or after "
+"execution of a single instruction, respectively. (The tracee will also, as "
+"usual, be stopped upon receipt of a signal.) From the tracer's perspective, "
+"the tracee will appear to have been stopped by receipt of a B<SIGTRAP>. So, "
+"for B<PTRACE_SYSCALL>, for example, the idea is to inspect the arguments to "
+"the system call at the first stop, then do another B<PTRACE_SYSCALL> and "
+"inspect the return value of the system call at the second stop. The I<data> "
+"argument is treated as for B<PTRACE_CONT>. (I<addr> is ignored.)"
+msgstr ""
+"Reinicia el proceso hijo parado al igual que PTRACE_CONT pero prepara al "
+"hijo para que se pare en la siguiente entrada a o salida de una llamda al "
+"sistema o tras la ejecución de una única intrucción, respectivamente. (Como "
+"es usual, el hijo también se detendrá al recibir una señal). Desde la "
+"perspectiva del padre, el hijo aparecerá como si se hubiera detenido al "
+"recibir una señal SIGTRAP. Por lo que, por ejemplo, para PTRACE_SYSCALL, la "
+"idea es inspeccionar los argumentos de la llamada al sistema en la primera "
+"parada, realizar a continuación otra PTRACE_SYSCALL e inspeccionar los "
+"valores devueltos por la llamada al sistema cuando se detenga la segunda "
+"vez. (I<direc> se ignora.)"
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_SET_SYSCALL> (since Linux 2.6.16)"
+msgstr "B<PTRACE_SET_SYSCALL> (desde Linux 2.6.16)"
+
+#. commit 3f471126ee53feb5e9b210ea2f525ed3bb9b7a7f
+#. As of 4.19-rc2
+#. commit 27aa55c5e5123fa8b8ad0156559d34d7edff58ca
+#. see change_syscall in tools/testing/selftests/seccomp/seccomp_bpf.c
+#. and also strace's linux/*/set_scno.c files.
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"When in syscall-enter-stop, change the number of the system call that is "
+"about to be executed to the number specified in the I<data> argument. The "
+"I<addr> argument is ignored. This request is currently supported only on "
+"arm (and arm64, though only for backwards compatibility), but most other "
+"architectures have other means of accomplishing this (usually by changing "
+"the register that the userland code passed the system call number in)."
+msgstr ""
+
+#. type: TP
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, fuzzy, no-wrap
+#| msgid "B<PTRACE_TRACEME>"
+msgid "B<PTRACE_SYSEMU>"
+msgstr "B<PTRACE_TRACEME>"
+
+#. type: TQ
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, fuzzy, no-wrap
+#| msgid "B<PTRACE_SYSEMU>, B<PTRACE_SYSEMU_SINGLESTEP> (since Linux 2.6.14)"
+msgid "B<PTRACE_SYSEMU_SINGLESTEP> (since Linux 2.6.14)"
+msgstr "B<PTRACE_SYSEMU>, B<PTRACE_SYSEMU_SINGLESTEP> (desde Linux 2.6.14)"
+
+#. As at 3.7
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"For B<PTRACE_SYSEMU>, continue and stop on entry to the next system call, "
+"which will not be executed. See the documentation on syscall-stops below. "
+"For B<PTRACE_SYSEMU_SINGLESTEP>, do the same but also singlestep if not a "
+"system call. This call is used by programs like User Mode Linux that want "
+"to emulate all the tracee's system calls. The I<data> argument is treated "
+"as for B<PTRACE_CONT>. The I<addr> argument is ignored. These requests are "
+"currently supported only on x86."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_LISTEN> (since Linux 3.4)"
+msgstr "B<PTRACE_LISTEN> (desde Linux 3.4)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Restart the stopped tracee, but prevent it from executing. The resulting "
+"state of the tracee is similar to a process which has been stopped by a "
+"B<SIGSTOP> (or other stopping signal). See the \"group-stop\" subsection "
+"for additional information. B<PTRACE_LISTEN> works only on tracees attached "
+"by B<PTRACE_SEIZE>."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_KILL>"
+msgstr "B<PTRACE_KILL>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "Sends the child a SIGKILL to terminate it. (I<addr> and I<data> are "
+#| "ignored.)"
+msgid ""
+"Send the tracee a B<SIGKILL> to terminate it. (I<addr> and I<data> are "
+"ignored.)"
+msgstr ""
+"Envía al hijo una señal B<SIGKILL> para que termine. (I<direc> y I<datos> se "
+"ignoran.)"
+
+#. [Note from Denys Vlasenko:
+#. deprecation suggested by Oleg Nesterov. He prefers to deprecate it
+#. instead of describing (and needing to support) PTRACE_KILL's quirks.]
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<This operation is deprecated; do not use it!> Instead, send a B<SIGKILL> "
+"directly using B<kill>(2) or B<tgkill>(2). The problem with B<PTRACE_KILL> "
+"is that it requires the tracee to be in signal-delivery-stop, otherwise it "
+"may not work (i.e., may complete successfully but won't kill the tracee). "
+"By contrast, sending a B<SIGKILL> directly has no such limitation."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_INTERRUPT> (since Linux 3.4)"
+msgstr "B<PTRACE_INTERRUPT> (desde Linux 3.4)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Stop a tracee. If the tracee is running or sleeping in kernel space and "
+"B<PTRACE_SYSCALL> is in effect, the system call is interrupted and syscall-"
+"exit-stop is reported. (The interrupted system call is restarted when the "
+"tracee is restarted.) If the tracee was already stopped by a signal and "
+"B<PTRACE_LISTEN> was sent to it, the tracee stops with B<PTRACE_EVENT_STOP> "
+"and I<WSTOPSIG(status)> returns the stop signal. If any other ptrace-stop "
+"is generated at the same time (for example, if a signal is sent to the "
+"tracee), this ptrace-stop happens. If none of the above applies (for "
+"example, if the tracee is running in user space), it stops with "
+"B<PTRACE_EVENT_STOP> with I<WSTOPSIG(status)> == B<SIGTRAP>. "
+"B<PTRACE_INTERRUPT> only works on tracees attached by B<PTRACE_SEIZE>."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_ATTACH>"
+msgstr "B<PTRACE_ATTACH>"
+
+#. No longer true (removed by Denys Vlasenko, 2011, who remarks:
+#. "I think it isn't true in non-ancient 2.4 and in Linux 2.6/3.x.
+#. Basically, it's not true for any Linux in practical use.
+#. ; the behavior of the tracee is as if it had done a
+#. .BR PTRACE_TRACEME .
+#. The calling process actually becomes the parent of the tracee
+#. process for most purposes (e.g., it will receive
+#. notification of tracee events and appears in
+#. .BR ps (1)
+#. output as the tracee's parent), but a
+#. .BR getppid (2)
+#. by the tracee will still return the PID of the original parent.
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Attach to the process specified in I<pid>, making it a tracee of the calling "
+"process. The tracee is sent a B<SIGSTOP>, but will not necessarily have "
+"stopped by the completion of this call; use B<waitpid>(2) to wait for the "
+"tracee to stop. See the \"Attaching and detaching\" subsection for "
+"additional information. (I<addr> and I<data> are ignored.)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Permission to perform a B<PTRACE_ATTACH> is governed by a ptrace access mode "
+"B<PTRACE_MODE_ATTACH_REALCREDS> check; see below."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_SEIZE> (since Linux 3.4)"
+msgstr "B<PTRACE_SEIZE> (desde Linux 3.4)"
+
+#
+#
+#
+#. Noted by Dmitry Levin:
+#. PTRACE_SEIZE was introduced by commit v3.1-rc1~308^2~28, but
+#. it had to be used along with a temporary flag PTRACE_SEIZE_DEVEL,
+#. which was removed later by commit v3.4-rc1~109^2~20.
+#. That is, [before] v3.4 we had a test mode of PTRACE_SEIZE API,
+#. which was not compatible with the current PTRACE_SEIZE API introduced
+#. in Linux 3.4.
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Attach to the process specified in I<pid>, making it a tracee of the calling "
+"process. Unlike B<PTRACE_ATTACH>, B<PTRACE_SEIZE> does not stop the "
+"process. Group-stops are reported as B<PTRACE_EVENT_STOP> and "
+"I<WSTOPSIG(status)> returns the stop signal. Automatically attached "
+"children stop with B<PTRACE_EVENT_STOP> and I<WSTOPSIG(status)> returns "
+"B<SIGTRAP> instead of having B<SIGSTOP> signal delivered to them. "
+"B<execve>(2) does not deliver an extra B<SIGTRAP>. Only a B<PTRACE_SEIZE>d "
+"process can accept B<PTRACE_INTERRUPT> and B<PTRACE_LISTEN> commands. The "
+"\"seized\" behavior just described is inherited by children that are "
+"automatically attached using B<PTRACE_O_TRACEFORK>, B<PTRACE_O_TRACEVFORK>, "
+"and B<PTRACE_O_TRACECLONE>. I<addr> must be zero. I<data> contains a bit "
+"mask of ptrace options to activate immediately."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Permission to perform a B<PTRACE_SEIZE> is governed by a ptrace access mode "
+"B<PTRACE_MODE_ATTACH_REALCREDS> check; see below."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_SECCOMP_GET_FILTER> (since Linux 4.4)"
+msgstr "B<PTRACE_SECCOMP_GET_FILTER> (desde Linux 4.4)"
+
+#. commit f8e529ed941ba2bbcbf310b575d968159ce7e895
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This operation allows the tracer to dump the tracee's classic BPF filters."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<addr> is an integer specifying the index of the filter to be dumped. The "
+"most recently installed filter has the index 0. If I<addr> is greater than "
+"the number of installed filters, the operation fails with the error "
+"B<ENOENT>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<data> is either a pointer to a I<struct sock_filter> array that is large "
+"enough to store the BPF program, or NULL if the program is not to be stored."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Upon success, the return value is the number of instructions in the BPF "
+"program. If I<data> was NULL, then this return value can be used to "
+"correctly size the I<struct sock_filter> array passed in a subsequent call."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This operation fails with the error B<EACCES> if the caller does not have "
+"the B<CAP_SYS_ADMIN> capability or if the caller is in strict or filter "
+"seccomp mode. If the filter referred to by I<addr> is not a classic BPF "
+"filter, the operation fails with the error B<EMEDIUMTYPE>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This operation is available if the kernel was configured with both the "
+"B<CONFIG_SECCOMP_FILTER> and the B<CONFIG_CHECKPOINT_RESTORE> options."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_DETACH>"
+msgstr "B<PTRACE_DETACH>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "Restarts the stopped child as for PTRACE_CONT, but first detaches from "
+#| "the process, undoing the reparenting effect of PTRACE_ATTACH, and the "
+#| "effects of PTRACE_TRACEME. Although perhaps not intended, under Linux a "
+#| "traced child can be detached in this way regardless of which method was "
+#| "used to initiate tracing. (I<addr> is ignored.)"
+msgid ""
+"Restart the stopped tracee as for B<PTRACE_CONT>, but first detach from it. "
+"Under Linux, a tracee can be detached in this way regardless of which method "
+"was used to initiate tracing. (I<addr> is ignored.)"
+msgstr ""
+"Reinicia el hijo parado al igual que PTRACE_CONT pero primero lo desata del "
+"proceso, deshaciendo el efecto de reparentesco de PTRACE_ATTACH y los "
+"efectos de PTRACE_TRACEME. Aunque quizás no sea intencionado, bajo Linux un "
+"proceso rastreado puede ser desatado de esta manera sin tener en cuenta qué "
+"método se usó para iniciar el rastreo. (I<direc> is ignored.)"
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_GET_THREAD_AREA> (since Linux 2.6.0)"
+msgstr "B<PTRACE_GET_THREAD_AREA> (desde Linux 2.6.0)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This operation performs a similar task to B<get_thread_area>(2). It reads "
+"the TLS entry in the GDT whose index is given in I<addr>, placing a copy of "
+"the entry into the I<struct user_desc> pointed to by I<data>. (By contrast "
+"with B<get_thread_area>(2), the I<entry_number> of the I<struct user_desc> "
+"is ignored.)"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_SET_THREAD_AREA> (since Linux 2.6.0)"
+msgstr "B<PTRACE_SET_THREAD_AREA> (desde Linux 2.6.0)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This operation performs a similar task to B<set_thread_area>(2). It sets "
+"the TLS entry in the GDT whose index is given in I<addr>, assigning it the "
+"data supplied in the I<struct user_desc> pointed to by I<data>. (By "
+"contrast with B<set_thread_area>(2), the I<entry_number> of the I<struct "
+"user_desc> is ignored; in other words, this ptrace operation can't be used "
+"to allocate a free TLS entry.)"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_GET_SYSCALL_INFO> (since Linux 5.3)"
+msgstr "B<PTRACE_GET_SYSCALL_INFO> (desde Linux 5.3)"
+
+#. commit 201766a20e30f982ccfe36bebfad9602c3ff574a
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Retrieve information about the system call that caused the stop. The "
+"information is placed into the buffer pointed by the I<data> argument, which "
+"should be a pointer to a buffer of type I<struct ptrace_syscall_info>. The "
+"I<addr> argument contains the size of the buffer pointed to by the I<data> "
+"argument (i.e., I<sizeof(struct ptrace_syscall_info)>). The return value "
+"contains the number of bytes available to be written by the kernel. If the "
+"size of the data to be written by the kernel exceeds the size specified by "
+"the I<addr> argument, the output data is truncated."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The I<ptrace_syscall_info> structure contains the following fields:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"struct ptrace_syscall_info {\n"
+" __u8 op; /* Type of system call stop */\n"
+" __u32 arch; /* AUDIT_ARCH_* value; see seccomp(2) */\n"
+" __u64 instruction_pointer; /* CPU instruction pointer */\n"
+" __u64 stack_pointer; /* CPU stack pointer */\n"
+" union {\n"
+" struct { /* op == PTRACE_SYSCALL_INFO_ENTRY */\n"
+" __u64 nr; /* System call number */\n"
+" __u64 args[6]; /* System call arguments */\n"
+" } entry;\n"
+" struct { /* op == PTRACE_SYSCALL_INFO_EXIT */\n"
+" __s64 rval; /* System call return value */\n"
+" __u8 is_error; /* System call error flag;\n"
+" Boolean: does rval contain\n"
+" an error value (-ERRCODE) or\n"
+" a nonerror return value? */\n"
+" } exit;\n"
+" struct { /* op == PTRACE_SYSCALL_INFO_SECCOMP */\n"
+" __u64 nr; /* System call number */\n"
+" __u64 args[6]; /* System call arguments */\n"
+" __u32 ret_data; /* SECCOMP_RET_DATA portion\n"
+" of SECCOMP_RET_TRACE\n"
+" return value */\n"
+" } seccomp;\n"
+" };\n"
+"};\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<op>, I<arch>, I<instruction_pointer>, and I<stack_pointer> fields are "
+"defined for all kinds of ptrace system call stops. The rest of the "
+"structure is a union; one should read only those fields that are meaningful "
+"for the kind of system call stop specified by the I<op> field."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<op> field has one of the following values (defined in I<E<lt>linux/"
+"ptrace.hE<gt>>) indicating what type of stop occurred and which part of the "
+"union is filled:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_SYSCALL_INFO_ENTRY>"
+msgstr "B<PTRACE_SYSCALL_INFO_ENTRY>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<entry> component of the union contains information relating to a "
+"system call entry stop."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_SYSCALL_INFO_EXIT>"
+msgstr "B<PTRACE_SYSCALL_INFO_EXIT>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<exit> component of the union contains information relating to a system "
+"call exit stop."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_SYSCALL_INFO_SECCOMP>"
+msgstr "B<PTRACE_SYSCALL_INFO_SECCOMP>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<seccomp> component of the union contains information relating to a "
+"B<PTRACE_EVENT_SECCOMP> stop."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_SYSCALL_INFO_NONE>"
+msgstr "B<PTRACE_SYSCALL_INFO_NONE>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "No component of the union contains relevant information."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"In case of system call entry or exit stops, the data returned by "
+"B<PTRACE_GET_SYSCALL_INFO> is limited to type B<PTRACE_SYSCALL_INFO_NONE> "
+"unless B<PTRACE_O_TRACESYSGOOD> option is set before the corresponding "
+"system call stop has occurred."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Death under ptrace"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"When a (possibly multithreaded) process receives a killing signal (one whose "
+"disposition is set to B<SIG_DFL> and whose default action is to kill the "
+"process), all threads exit. Tracees report their death to their tracer(s). "
+"Notification of this event is delivered via B<waitpid>(2)."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Note that the killing signal will first cause signal-delivery-stop (on one "
+"tracee only), and only after it is injected by the tracer (or after it was "
+"dispatched to a thread which isn't traced), will death from the signal "
+"happen on I<all> tracees within a multithreaded process. (The term \"signal-"
+"delivery-stop\" is explained below.)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<SIGKILL> does not generate signal-delivery-stop and therefore the tracer "
+"can't suppress it. B<SIGKILL> kills even within system calls (syscall-exit-"
+"stop is not generated prior to death by B<SIGKILL>). The net effect is that "
+"B<SIGKILL> always kills the process (all its threads), even if some threads "
+"of the process are ptraced."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"When the tracee calls B<_exit>(2), it reports its death to its tracer. "
+"Other threads are not affected."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"When any thread executes B<exit_group>(2), every tracee in its thread group "
+"reports its death to its tracer."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If the B<PTRACE_O_TRACEEXIT> option is on, B<PTRACE_EVENT_EXIT> will happen "
+"before actual death. This applies to exits via B<exit>(2), "
+"B<exit_group>(2), and signal deaths (except B<SIGKILL>, depending on the "
+"kernel version; see BUGS below), and when threads are torn down on "
+"B<execve>(2) in a multithreaded process."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The tracer cannot assume that the ptrace-stopped tracee exists. There are "
+"many scenarios when the tracee may die while stopped (such as B<SIGKILL>). "
+"Therefore, the tracer must be prepared to handle an B<ESRCH> error on any "
+"ptrace operation. Unfortunately, the same error is returned if the tracee "
+"exists but is not ptrace-stopped (for commands which require a stopped "
+"tracee), or if it is not traced by the process which issued the ptrace "
+"call. The tracer needs to keep track of the stopped/running state of the "
+"tracee, and interpret B<ESRCH> as \"tracee died unexpectedly\" only if it "
+"knows that the tracee has been observed to enter ptrace-stop. Note that "
+"there is no guarantee that I<waitpid(WNOHANG)> will reliably report the "
+"tracee's death status if a ptrace operation returned B<ESRCH>. "
+"I<waitpid(WNOHANG)> may return 0 instead. In other words, the tracee may be "
+"\"not yet fully dead\", but already refusing ptrace requests."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The tracer can't assume that the tracee I<always> ends its life by reporting "
+"I<WIFEXITED(status)> or I<WIFSIGNALED(status)>; there are cases where this "
+"does not occur. For example, if a thread other than thread group leader "
+"does an B<execve>(2), it disappears; its PID will never be seen again, and "
+"any subsequent ptrace stops will be reported under the thread group leader's "
+"PID."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Stopped states"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A tracee can be in two states: running or stopped. For the purposes of "
+"ptrace, a tracee which is blocked in a system call (such as B<read>(2), "
+"B<pause>(2), etc.) is nevertheless considered to be running, even if the "
+"tracee is blocked for a long time. The state of the tracee after "
+"B<PTRACE_LISTEN> is somewhat of a gray area: it is not in any ptrace-stop "
+"(ptrace commands won't work on it, and it will deliver B<waitpid>(2) "
+"notifications), but it also may be considered \"stopped\" because it is not "
+"executing instructions (is not scheduled), and if it was in group-stop "
+"before B<PTRACE_LISTEN>, it will not respond to signals until B<SIGCONT> is "
+"received."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"There are many kinds of states when the tracee is stopped, and in ptrace "
+"discussions they are often conflated. Therefore, it is important to use "
+"precise terms."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"In this manual page, any stopped state in which the tracee is ready to "
+"accept ptrace commands from the tracer is called I<ptrace-stop>. Ptrace-"
+"stops can be further subdivided into I<signal-delivery-stop>, I<group-stop>, "
+"I<syscall-stop>, I<PTRACE_EVENT stops>, and so on. These stopped states are "
+"described in detail below."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"When the running tracee enters ptrace-stop, it notifies its tracer using "
+"B<waitpid>(2) (or one of the other \"wait\" system calls). Most of this "
+"manual page assumes that the tracer waits with:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid " pid = waitpid(pid_or_minus_1, &status, __WALL);\n"
+msgid "pid = waitpid(pid_or_minus_1, &status, __WALL);\n"
+msgstr " pid = waitpid(pid_or_minus_1, &status, __WALL);\n"
+
+#. Denys Vlasenko:
+#. Do we require __WALL usage, or will just using 0 be ok? (With 0,
+#. I am not 100% sure there aren't ugly corner cases.) Are the
+#. rules different if user wants to use waitid? Will waitid require
+#. WEXITED?
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Ptrace-stopped tracees are reported as returns with I<pid> greater than 0 "
+"and I<WIFSTOPPED(status)> true."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The B<__WALL> flag does not include the B<WSTOPPED> and B<WEXITED> flags, "
+"but implies their functionality."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Setting the B<WCONTINUED> flag when calling B<waitpid>(2) is not "
+"recommended: the \"continued\" state is per-process and consuming it can "
+"confuse the real parent of the tracee."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Use of the B<WNOHANG> flag may cause B<waitpid>(2) to return 0 (\"no wait "
+"results available yet\") even if the tracer knows there should be a "
+"notification. Example:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"errno = 0;\n"
+"ptrace(PTRACE_CONT, pid, 0L, 0L);\n"
+"if (errno == ESRCH) {\n"
+" /* tracee is dead */\n"
+" r = waitpid(tracee, &status, __WALL | WNOHANG);\n"
+" /* r can still be 0 here! */\n"
+"}\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The following kinds of ptrace-stops exist: signal-delivery-stops, group-"
+"stops, B<PTRACE_EVENT> stops, syscall-stops. They all are reported by "
+"B<waitpid>(2) with I<WIFSTOPPED(status)> true. They may be differentiated "
+"by examining the value I<statusE<gt>E<gt>8>, and if there is ambiguity in "
+"that value, by querying B<PTRACE_GETSIGINFO>. (Note: the "
+"I<WSTOPSIG(status)> macro can't be used to perform this examination, because "
+"it returns the value I<(statusE<gt>E<gt>8)\\ &\\ 0xff>.)"
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Signal-delivery-stop"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"When a (possibly multithreaded) process receives any signal except "
+"B<SIGKILL>, the kernel selects an arbitrary thread which handles the "
+"signal. (If the signal is generated with B<tgkill>(2), the target thread "
+"can be explicitly selected by the caller.) If the selected thread is "
+"traced, it enters signal-delivery-stop. At this point, the signal is not "
+"yet delivered to the process, and can be suppressed by the tracer. If the "
+"tracer doesn't suppress the signal, it passes the signal to the tracee in "
+"the next ptrace restart request. This second step of signal delivery is "
+"called I<signal injection> in this manual page. Note that if the signal is "
+"blocked, signal-delivery-stop doesn't happen until the signal is unblocked, "
+"with the usual exception that B<SIGSTOP> can't be blocked."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Signal-delivery-stop is observed by the tracer as B<waitpid>(2) returning "
+"with I<WIFSTOPPED(status)> true, with the signal returned by "
+"I<WSTOPSIG(status)>. If the signal is B<SIGTRAP>, this may be a different "
+"kind of ptrace-stop; see the \"Syscall-stops\" and \"execve\" sections below "
+"for details. If I<WSTOPSIG(status)> returns a stopping signal, this may be "
+"a group-stop; see below."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Signal injection and suppression"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"After signal-delivery-stop is observed by the tracer, the tracer should "
+"restart the tracee with the call"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid " ptrace(PTRACE_restart, pid, 0, sig)\n"
+msgid "ptrace(PTRACE_restart, pid, 0, sig)\n"
+msgstr " ptrace(PTRACE_restart, pid, 0, sig)\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"where B<PTRACE_restart> is one of the restarting ptrace requests. If I<sig> "
+"is 0, then a signal is not delivered. Otherwise, the signal I<sig> is "
+"delivered. This operation is called I<signal injection> in this manual "
+"page, to distinguish it from signal-delivery-stop."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<sig> value may be different from the I<WSTOPSIG(status)> value: the "
+"tracer can cause a different signal to be injected."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Note that a suppressed signal still causes system calls to return "
+"prematurely. In this case, system calls will be restarted: the tracer will "
+"observe the tracee to reexecute the interrupted system call (or "
+"B<restart_syscall>(2) system call for a few system calls which use a "
+"different mechanism for restarting) if the tracer uses B<PTRACE_SYSCALL>. "
+"Even system calls (such as B<poll>(2)) which are not restartable after "
+"signal are restarted after signal is suppressed; however, kernel bugs exist "
+"which cause some system calls to fail with B<EINTR> even though no "
+"observable signal is injected to the tracee."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Restarting ptrace commands issued in ptrace-stops other than signal-delivery-"
+"stop are not guaranteed to inject a signal, even if I<sig> is nonzero. No "
+"error is reported; a nonzero I<sig> may simply be ignored. Ptrace users "
+"should not try to \"create a new signal\" this way: use B<tgkill>(2) "
+"instead."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The fact that signal injection requests may be ignored when restarting the "
+"tracee after ptrace stops that are not signal-delivery-stops is a cause of "
+"confusion among ptrace users. One typical scenario is that the tracer "
+"observes group-stop, mistakes it for signal-delivery-stop, restarts the "
+"tracee with"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid " ptrace(PTRACE_restart, pid, 0, stopsig)\n"
+msgid "ptrace(PTRACE_restart, pid, 0, stopsig)\n"
+msgstr " ptrace(PTRACE_restart, pid, 0, stopsig)\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"with the intention of injecting I<stopsig>, but I<stopsig> gets ignored and "
+"the tracee continues to run."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The B<SIGCONT> signal has a side effect of waking up (all threads of) a "
+"group-stopped process. This side effect happens before signal-delivery-"
+"stop. The tracer can't suppress this side effect (it can only suppress "
+"signal injection, which only causes the B<SIGCONT> handler to not be "
+"executed in the tracee, if such a handler is installed). In fact, waking up "
+"from group-stop may be followed by signal-delivery-stop for signal(s) "
+"I<other than> B<SIGCONT>, if they were pending when B<SIGCONT> was "
+"delivered. In other words, B<SIGCONT> may be not the first signal observed "
+"by the tracee after it was sent."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Stopping signals cause (all threads of) a process to enter group-stop. This "
+"side effect happens after signal injection, and therefore can be suppressed "
+"by the tracer."
+msgstr ""
+
+#
+#. In the Linux 2.4 sources, in arch/i386/kernel/signal.c::do_signal(),
+#. there is:
+#. /* The debugger continued. Ignore SIGSTOP. */
+#. if (signr == SIGSTOP)
+#. continue;
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "In Linux 2.4 and earlier, the B<SIGSTOP> signal can't be injected."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<PTRACE_GETSIGINFO> can be used to retrieve a I<siginfo_t> structure which "
+"corresponds to the delivered signal. B<PTRACE_SETSIGINFO> may be used to "
+"modify it. If B<PTRACE_SETSIGINFO> has been used to alter I<siginfo_t>, the "
+"I<si_signo> field and the I<sig> parameter in the restarting command must "
+"match, otherwise the result is undefined."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Group-stop"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"When a (possibly multithreaded) process receives a stopping signal, all "
+"threads stop. If some threads are traced, they enter a group-stop. Note "
+"that the stopping signal will first cause signal-delivery-stop (on one "
+"tracee only), and only after it is injected by the tracer (or after it was "
+"dispatched to a thread which isn't traced), will group-stop be initiated on "
+"I<all> tracees within the multithreaded process. As usual, every tracee "
+"reports its group-stop separately to the corresponding tracer."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Group-stop is observed by the tracer as B<waitpid>(2) returning with "
+"I<WIFSTOPPED(status)> true, with the stopping signal available via "
+"I<WSTOPSIG(status)>. The same result is returned by some other classes of "
+"ptrace-stops, therefore the recommended practice is to perform the call"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid " ptrace(PTRACE_GETSIGINFO, pid, 0, &siginfo)\n"
+msgid "ptrace(PTRACE_GETSIGINFO, pid, 0, &siginfo)\n"
+msgstr " ptrace(PTRACE_GETSIGINFO, pid, 0, &siginfo)\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The call can be avoided if the signal is not B<SIGSTOP>, B<SIGTSTP>, "
+"B<SIGTTIN>, or B<SIGTTOU>; only these four signals are stopping signals. If "
+"the tracer sees something else, it can't be a group-stop. Otherwise, the "
+"tracer needs to call B<PTRACE_GETSIGINFO>. If B<PTRACE_GETSIGINFO> fails "
+"with B<EINVAL>, then it is definitely a group-stop. (Other failure codes "
+"are possible, such as B<ESRCH> (\"no such process\") if a B<SIGKILL> killed "
+"the tracee.)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If tracee was attached using B<PTRACE_SEIZE>, group-stop is indicated by "
+"B<PTRACE_EVENT_STOP>: I<statusE<gt>E<gt>16 == PTRACE_EVENT_STOP>. This "
+"allows detection of group-stops without requiring an extra "
+"B<PTRACE_GETSIGINFO> call."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"As of Linux 2.6.38, after the tracer sees the tracee ptrace-stop and until "
+"it restarts or kills it, the tracee will not run, and will not send "
+"notifications (except B<SIGKILL> death) to the tracer, even if the tracer "
+"enters into another B<waitpid>(2) call."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The kernel behavior described in the previous paragraph causes a problem "
+"with transparent handling of stopping signals. If the tracer restarts the "
+"tracee after group-stop, the stopping signal is effectively ignored\\[em]the "
+"tracee doesn't remain stopped, it runs. If the tracer doesn't restart the "
+"tracee before entering into the next B<waitpid>(2), future B<SIGCONT> "
+"signals will not be reported to the tracer; this would cause the B<SIGCONT> "
+"signals to have no effect on the tracee."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Since Linux 3.4, there is a method to overcome this problem: instead of "
+"B<PTRACE_CONT>, a B<PTRACE_LISTEN> command can be used to restart a tracee "
+"in a way where it does not execute, but waits for a new event which it can "
+"report via B<waitpid>(2) (such as when it is restarted by a B<SIGCONT>)."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid "PTRACE_CONT"
+msgid "PTRACE_EVENT stops"
+msgstr "PTRACE_CONT"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If the tracer sets B<PTRACE_O_TRACE_*> options, the tracee will enter ptrace-"
+"stops called B<PTRACE_EVENT> stops."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<PTRACE_EVENT> stops are observed by the tracer as B<waitpid>(2) returning "
+"with I<WIFSTOPPED(status)>, and I<WSTOPSIG(status)> returns B<SIGTRAP> (or "
+"for B<PTRACE_EVENT_STOP>, returns the stopping signal if tracee is in a "
+"group-stop). An additional bit is set in the higher byte of the status "
+"word: the value I<statusE<gt>E<gt>8> will be"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid " ((PTRACE_EVENT_fooE<lt>E<lt>8) | SIGTRAP).\n"
+msgid "((PTRACE_EVENT_fooE<lt>E<lt>8) | SIGTRAP).\n"
+msgstr " ((PTRACE_EVENT_fooE<lt>E<lt>8) | SIGTRAP).\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The following events exist:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_EVENT_VFORK>"
+msgstr "B<PTRACE_EVENT_VFORK>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Stop before return from B<vfork>(2) or B<clone>(2) with the B<CLONE_VFORK> "
+"flag. When the tracee is continued after this stop, it will wait for child "
+"to exit/exec before continuing its execution (in other words, the usual "
+"behavior on B<vfork>(2))."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_EVENT_FORK>"
+msgstr "B<PTRACE_EVENT_FORK>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Stop before return from B<fork>(2) or B<clone>(2) with the exit signal set "
+"to B<SIGCHLD>."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_EVENT_CLONE>"
+msgstr "B<PTRACE_EVENT_CLONE>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Stop before return from B<clone>(2)."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_EVENT_VFORK_DONE>"
+msgstr "B<PTRACE_EVENT_VFORK_DONE>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Stop before return from B<vfork>(2) or B<clone>(2) with the B<CLONE_VFORK> "
+"flag, but after the child unblocked this tracee by exiting or execing."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"For all four stops described above, the stop occurs in the parent (i.e., the "
+"tracee), not in the newly created thread. B<PTRACE_GETEVENTMSG> can be used "
+"to retrieve the new thread's ID."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_EVENT_EXEC>"
+msgstr "B<PTRACE_EVENT_EXEC>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Stop before return from B<execve>(2). Since Linux 3.0, "
+"B<PTRACE_GETEVENTMSG> returns the former thread ID."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_EVENT_EXIT>"
+msgstr "B<PTRACE_EVENT_EXIT>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Stop before exit (including death from B<exit_group>(2)), signal death, or "
+"exit caused by B<execve>(2) in a multithreaded process. "
+"B<PTRACE_GETEVENTMSG> returns the exit status. Registers can be examined "
+"(unlike when \"real\" exit happens). The tracee is still alive; it needs to "
+"be B<PTRACE_CONT>ed or B<PTRACE_DETACH>ed to finish exiting."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_EVENT_STOP>"
+msgstr "B<PTRACE_EVENT_STOP>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Stop induced by B<PTRACE_INTERRUPT> command, or group-stop, or initial "
+"ptrace-stop when a new child is attached (only if attached using "
+"B<PTRACE_SEIZE>)."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_EVENT_SECCOMP>"
+msgstr "B<PTRACE_EVENT_SECCOMP>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Stop triggered by a B<seccomp>(2) rule on tracee syscall entry when "
+"B<PTRACE_O_TRACESECCOMP> has been set by the tracer. The seccomp event "
+"message data (from the B<SECCOMP_RET_DATA> portion of the seccomp filter "
+"rule) can be retrieved with B<PTRACE_GETEVENTMSG>. The semantics of this "
+"stop are described in detail in a separate section below."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<PTRACE_GETSIGINFO> on B<PTRACE_EVENT> stops returns B<SIGTRAP> in "
+"I<si_signo>, with I<si_code> set to I<(eventE<lt>E<lt>8)\\ |\\ SIGTRAP>."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Syscall-stops"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If the tracee was restarted by B<PTRACE_SYSCALL> or B<PTRACE_SYSEMU>, the "
+"tracee enters syscall-enter-stop just prior to entering any system call "
+"(which will not be executed if the restart was using B<PTRACE_SYSEMU>, "
+"regardless of any change made to registers at this point or how the tracee "
+"is restarted after this stop). No matter which method caused the syscall-"
+"entry-stop, if the tracer restarts the tracee with B<PTRACE_SYSCALL>, the "
+"tracee enters syscall-exit-stop when the system call is finished, or if it "
+"is interrupted by a signal. (That is, signal-delivery-stop never happens "
+"between syscall-enter-stop and syscall-exit-stop; it happens I<after> "
+"syscall-exit-stop.). If the tracee is continued using any other method "
+"(including B<PTRACE_SYSEMU>), no syscall-exit-stop occurs. Note that all "
+"mentions B<PTRACE_SYSEMU> apply equally to B<PTRACE_SYSEMU_SINGLESTEP>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"However, even if the tracee was continued using B<PTRACE_SYSCALL>, it is not "
+"guaranteed that the next stop will be a syscall-exit-stop. Other "
+"possibilities are that the tracee may stop in a B<PTRACE_EVENT> stop "
+"(including seccomp stops), exit (if it entered B<_exit>(2) or "
+"B<exit_group>(2)), be killed by B<SIGKILL>, or die silently (if it is a "
+"thread group leader, the B<execve>(2) happened in another thread, and that "
+"thread is not traced by the same tracer; this situation is discussed later)."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Syscall-enter-stop and syscall-exit-stop are observed by the tracer as "
+"B<waitpid>(2) returning with I<WIFSTOPPED(status)> true, and "
+"I<WSTOPSIG(status)> giving B<SIGTRAP>. If the B<PTRACE_O_TRACESYSGOOD> "
+"option was set by the tracer, then I<WSTOPSIG(status)> will give the value "
+"I<(SIGTRAP\\ |\\ 0x80)>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Syscall-stops can be distinguished from signal-delivery-stop with B<SIGTRAP> "
+"by querying B<PTRACE_GETSIGINFO> for the following cases:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "I<si_code> E<lt>= 0"
+msgstr "I<si_code> E<lt>= 0"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<SIGTRAP> was delivered as a result of a user-space action, for example, a "
+"system call (B<tgkill>(2), B<kill>(2), B<sigqueue>(3), etc.), expiration of "
+"a POSIX timer, change of state on a POSIX message queue, or completion of an "
+"asynchronous I/O request."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "I<si_code> == SI_KERNEL (0x80)"
+msgstr "I<si_code> == SI_KERNEL (0x80)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "B<SIGTRAP> was sent by the kernel."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "I<si_code> == SIGTRAP or I<si_code> == (SIGTRAP|0x80)"
+msgstr "I<si_code> == SIGTRAP o I<si_code> == (SIGTRAP|0x80)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "This is a syscall-stop."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"However, syscall-stops happen very often (twice per system call), and "
+"performing B<PTRACE_GETSIGINFO> for every syscall-stop may be somewhat "
+"expensive."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Some architectures allow the cases to be distinguished by examining "
+"registers. For example, on x86, I<rax> == -B<ENOSYS> in syscall-enter-"
+"stop. Since B<SIGTRAP> (like any other signal) always happens I<after> "
+"syscall-exit-stop, and at this point I<rax> almost never contains -"
+"B<ENOSYS>, the B<SIGTRAP> looks like \"syscall-stop which is not syscall-"
+"enter-stop\"; in other words, it looks like a \"stray syscall-exit-stop\" "
+"and can be detected this way. But such detection is fragile and is best "
+"avoided."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Using the B<PTRACE_O_TRACESYSGOOD> option is the recommended method to "
+"distinguish syscall-stops from other kinds of ptrace-stops, since it is "
+"reliable and does not incur a performance penalty."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Syscall-enter-stop and syscall-exit-stop are indistinguishable from each "
+"other by the tracer. The tracer needs to keep track of the sequence of "
+"ptrace-stops in order to not misinterpret syscall-enter-stop as syscall-exit-"
+"stop or vice versa. In general, a syscall-enter-stop is always followed by "
+"syscall-exit-stop, B<PTRACE_EVENT> stop, or the tracee's death; no other "
+"kinds of ptrace-stop can occur in between. However, note that seccomp stops "
+"(see below) can cause syscall-exit-stops, without preceding syscall-entry-"
+"stops. If seccomp is in use, care needs to be taken not to misinterpret "
+"such stops as syscall-entry-stops."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If after syscall-enter-stop, the tracer uses a restarting command other than "
+"B<PTRACE_SYSCALL>, syscall-exit-stop is not generated."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<PTRACE_GETSIGINFO> on syscall-stops returns B<SIGTRAP> in I<si_signo>, "
+"with I<si_code> set to B<SIGTRAP> or I<(SIGTRAP|0x80)>."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid "B<PTRACE_O_SUSPEND_SECCOMP> (since Linux 4.3)"
+msgid "PTRACE_EVENT_SECCOMP stops (Linux 3.5 to Linux 4.7)"
+msgstr "B<PTRACE_O_SUSPEND_SECCOMP> (desde Linux 4.3)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The behavior of B<PTRACE_EVENT_SECCOMP> stops and their interaction with "
+"other kinds of ptrace stops has changed between kernel versions. This "
+"documents the behavior from their introduction until Linux 4.7 (inclusive). "
+"The behavior in later kernel versions is documented in the next section."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A B<PTRACE_EVENT_SECCOMP> stop occurs whenever a B<SECCOMP_RET_TRACE> rule "
+"is triggered. This is independent of which methods was used to restart the "
+"system call. Notably, seccomp still runs even if the tracee was restarted "
+"using B<PTRACE_SYSEMU> and this system call is unconditionally skipped."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Restarts from this stop will behave as if the stop had occurred right before "
+"the system call in question. In particular, both B<PTRACE_SYSCALL> and "
+"B<PTRACE_SYSEMU> will normally cause a subsequent syscall-entry-stop. "
+"However, if after the B<PTRACE_EVENT_SECCOMP> the system call number is "
+"negative, both the syscall-entry-stop and the system call itself will be "
+"skipped. This means that if the system call number is negative after a "
+"B<PTRACE_EVENT_SECCOMP> and the tracee is restarted using B<PTRACE_SYSCALL>, "
+"the next observed stop will be a syscall-exit-stop, rather than the syscall-"
+"entry-stop that might have been expected."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "PTRACE_EVENT_SECCOMP stops (since Linux 4.8)"
+msgstr ""
+
+#. commit 93e35efb8de45393cf61ed07f7b407629bf698ea
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Starting with Linux 4.8, the B<PTRACE_EVENT_SECCOMP> stop was reordered to "
+"occur between syscall-entry-stop and syscall-exit-stop. Note that seccomp "
+"no longer runs (and no B<PTRACE_EVENT_SECCOMP> will be reported) if the "
+"system call is skipped due to B<PTRACE_SYSEMU>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Functionally, a B<PTRACE_EVENT_SECCOMP> stop functions comparably to a "
+"syscall-entry-stop (i.e., continuations using B<PTRACE_SYSCALL> will cause "
+"syscall-exit-stops, the system call number may be changed and any other "
+"modified registers are visible to the to-be-executed system call as well). "
+"Note that there may be, but need not have been a preceding syscall-entry-"
+"stop."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"After a B<PTRACE_EVENT_SECCOMP> stop, seccomp will be rerun, with a "
+"B<SECCOMP_RET_TRACE> rule now functioning the same as a "
+"B<SECCOMP_RET_ALLOW>. Specifically, this means that if registers are not "
+"modified during the B<PTRACE_EVENT_SECCOMP> stop, the system call will then "
+"be allowed."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid "PTRACE_SYSCALL, PTRACE_SINGLESTEP"
+msgid "PTRACE_SINGLESTEP stops"
+msgstr "PTRACE_SYSCALL, PTRACE_SINGLESTEP"
+
+#
+#. FIXME .
+#. document stops occurring with PTRACE_SINGLESTEP
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "[Details of these kinds of stops are yet to be documented.]"
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Informational and restarting ptrace commands"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Most ptrace commands (all except B<PTRACE_ATTACH>, B<PTRACE_SEIZE>, "
+"B<PTRACE_TRACEME>, B<PTRACE_INTERRUPT>, and B<PTRACE_KILL>) require the "
+"tracee to be in a ptrace-stop, otherwise they fail with B<ESRCH>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"When the tracee is in ptrace-stop, the tracer can read and write data to the "
+"tracee using informational commands. These commands leave the tracee in "
+"ptrace-stopped state:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"ptrace(PTRACE_PEEKTEXT/PEEKDATA/PEEKUSER, pid, addr, 0);\n"
+"ptrace(PTRACE_POKETEXT/POKEDATA/POKEUSER, pid, addr, long_val);\n"
+"ptrace(PTRACE_GETREGS/GETFPREGS, pid, 0, &struct);\n"
+"ptrace(PTRACE_SETREGS/SETFPREGS, pid, 0, &struct);\n"
+"ptrace(PTRACE_GETREGSET, pid, NT_foo, &iov);\n"
+"ptrace(PTRACE_SETREGSET, pid, NT_foo, &iov);\n"
+"ptrace(PTRACE_GETSIGINFO, pid, 0, &siginfo);\n"
+"ptrace(PTRACE_SETSIGINFO, pid, 0, &siginfo);\n"
+"ptrace(PTRACE_GETEVENTMSG, pid, 0, &long_var);\n"
+"ptrace(PTRACE_SETOPTIONS, pid, 0, PTRACE_O_flags);\n"
+msgstr ""
+"ptrace(PTRACE_PEEKTEXT/PEEKDATA/PEEKUSER, pid, addr, 0);\n"
+"ptrace(PTRACE_POKETEXT/POKEDATA/POKEUSER, pid, addr, long_val);\n"
+"ptrace(PTRACE_GETREGS/GETFPREGS, pid, 0, &struct);\n"
+"ptrace(PTRACE_SETREGS/SETFPREGS, pid, 0, &struct);\n"
+"ptrace(PTRACE_GETREGSET, pid, NT_foo, &iov);\n"
+"ptrace(PTRACE_SETREGSET, pid, NT_foo, &iov);\n"
+"ptrace(PTRACE_GETSIGINFO, pid, 0, &siginfo);\n"
+"ptrace(PTRACE_SETSIGINFO, pid, 0, &siginfo);\n"
+"ptrace(PTRACE_GETEVENTMSG, pid, 0, &long_var);\n"
+"ptrace(PTRACE_SETOPTIONS, pid, 0, PTRACE_O_flags);\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Note that some errors are not reported. For example, setting signal "
+"information (I<siginfo>) may have no effect in some ptrace-stops, yet the "
+"call may succeed (return 0 and not set I<errno>); querying "
+"B<PTRACE_GETEVENTMSG> may succeed and return some random value if current "
+"ptrace-stop is not documented as returning a meaningful event message."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The call"
+msgstr "La llamada"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid " ptrace(PTRACE_SETOPTIONS, pid, 0, PTRACE_O_flags);\n"
+msgid "ptrace(PTRACE_SETOPTIONS, pid, 0, PTRACE_O_flags);\n"
+msgstr " ptrace(PTRACE_SETOPTIONS, pid, 0, PTRACE_O_flags);\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"affects one tracee. The tracee's current flags are replaced. Flags are "
+"inherited by new tracees created and \"auto-attached\" via active "
+"B<PTRACE_O_TRACEFORK>, B<PTRACE_O_TRACEVFORK>, or B<PTRACE_O_TRACECLONE> "
+"options."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Another group of commands makes the ptrace-stopped tracee run. They have "
+"the form:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid " ptrace(cmd, pid, 0, sig);\n"
+msgid "ptrace(cmd, pid, 0, sig);\n"
+msgstr " ptrace(cmd, pid, 0, sig);\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"where I<cmd> is B<PTRACE_CONT>, B<PTRACE_LISTEN>, B<PTRACE_DETACH>, "
+"B<PTRACE_SYSCALL>, B<PTRACE_SINGLESTEP>, B<PTRACE_SYSEMU>, or "
+"B<PTRACE_SYSEMU_SINGLESTEP>. If the tracee is in signal-delivery-stop, "
+"I<sig> is the signal to be injected (if it is nonzero). Otherwise, I<sig> "
+"may be ignored. (When restarting a tracee from a ptrace-stop other than "
+"signal-delivery-stop, recommended practice is to always pass 0 in I<sig>.)"
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Attaching and detaching"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "A thread can be attached to the tracer using the call"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid " ptrace(PTRACE_ATTACH, pid, 0, 0);\n"
+msgid "ptrace(PTRACE_ATTACH, pid, 0, 0);\n"
+msgstr " ptrace(PTRACE_ATTACH, pid, 0, 0);\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "or"
+msgstr "o"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid " ptrace(PTRACE_SEIZE, pid, 0, PTRACE_O_flags);\n"
+msgid "ptrace(PTRACE_SEIZE, pid, 0, PTRACE_O_flags);\n"
+msgstr " ptrace(PTRACE_SEIZE, pid, 0, PTRACE_O_flags);\n"
+
+#
+#. FIXME Describe how to attach to a thread which is already group-stopped.
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<PTRACE_ATTACH> sends B<SIGSTOP> to this thread. If the tracer wants this "
+"B<SIGSTOP> to have no effect, it needs to suppress it. Note that if other "
+"signals are concurrently sent to this thread during attach, the tracer may "
+"see the tracee enter signal-delivery-stop with other signal(s) first! The "
+"usual practice is to reinject these signals until B<SIGSTOP> is seen, then "
+"suppress B<SIGSTOP> injection. The design bug here is that a ptrace attach "
+"and a concurrently delivered B<SIGSTOP> may race and the concurrent "
+"B<SIGSTOP> may be lost."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Since attaching sends B<SIGSTOP> and the tracer usually suppresses it, this "
+"may cause a stray B<EINTR> return from the currently executing system call "
+"in the tracee, as described in the \"Signal injection and suppression\" "
+"section."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Since Linux 3.4, B<PTRACE_SEIZE> can be used instead of B<PTRACE_ATTACH>. "
+"B<PTRACE_SEIZE> does not stop the attached process. If you need to stop it "
+"after attach (or at any other time) without sending it any signals, use "
+"B<PTRACE_INTERRUPT> command."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The request"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid " ptrace(PTRACE_TRACEME, 0, 0, 0);\n"
+msgid "ptrace(PTRACE_TRACEME, 0, 0, 0);\n"
+msgstr " ptrace(PTRACE_TRACEME, 0, 0, 0);\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"turns the calling thread into a tracee. The thread continues to run "
+"(doesn't enter ptrace-stop). A common practice is to follow the "
+"B<PTRACE_TRACEME> with"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid " raise(SIGSTOP);\n"
+msgid "raise(SIGSTOP);\n"
+msgstr " raise(SIGSTOP);\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"and allow the parent (which is our tracer now) to observe our signal-"
+"delivery-stop."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If the B<PTRACE_O_TRACEFORK>, B<PTRACE_O_TRACEVFORK>, or "
+"B<PTRACE_O_TRACECLONE> options are in effect, then children created by, "
+"respectively, B<vfork>(2) or B<clone>(2) with the B<CLONE_VFORK> flag, "
+"B<fork>(2) or B<clone>(2) with the exit signal set to B<SIGCHLD>, and "
+"other kinds of B<clone>(2), are automatically attached to the same tracer "
+"which traced their parent. B<SIGSTOP> is delivered to the children, causing "
+"them to enter signal-delivery-stop after they exit the system call which "
+"created them."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Detaching of the tracee is performed by:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid " ptrace(PTRACE_DETACH, pid, 0, sig);\n"
+msgid "ptrace(PTRACE_DETACH, pid, 0, sig);\n"
+msgstr " ptrace(PTRACE_DETACH, pid, 0, sig);\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<PTRACE_DETACH> is a restarting operation; therefore it requires the tracee "
+"to be in ptrace-stop. If the tracee is in signal-delivery-stop, a signal "
+"can be injected. Otherwise, the I<sig> parameter may be silently ignored."
+msgstr ""
+
+#. FIXME Describe how to detach from a group-stopped tracee so that it
+#. doesn't run, but continues to wait for SIGCONT.
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If the tracee is running when the tracer wants to detach it, the usual "
+"solution is to send B<SIGSTOP> (using B<tgkill>(2), to make sure it goes to "
+"the correct thread), wait for the tracee to stop in signal-delivery-stop for "
+"B<SIGSTOP> and then detach it (suppressing B<SIGSTOP> injection). A design "
+"bug is that this can race with concurrent B<SIGSTOP>s. Another complication "
+"is that the tracee may enter other ptrace-stops and needs to be restarted "
+"and waited for again, until B<SIGSTOP> is seen. Yet another complication is "
+"to be sure that the tracee is not already ptrace-stopped, because no signal "
+"delivery happens while it is\\[em]not even B<SIGSTOP>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If the tracer dies, all tracees are automatically detached and restarted, "
+"unless they were in group-stop. Handling of restart from group-stop is "
+"currently buggy, but the \"as planned\" behavior is to leave tracee stopped "
+"and waiting for B<SIGCONT>. If the tracee is restarted from signal-delivery-"
+"stop, the pending signal is injected."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "execve(2) under ptrace"
+msgstr ""
+
+#
+#. clone(2) CLONE_THREAD says:
+#. If any of the threads in a thread group performs an execve(2),
+#. then all threads other than the thread group leader are terminated,
+#. and the new program is executed in the thread group leader.
+#. In Linux 3.1 sources, see fs/exec.c::de_thread()
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"When one thread in a multithreaded process calls B<execve>(2), the kernel "
+"destroys all other threads in the process, and resets the thread ID of the "
+"execing thread to the thread group ID (process ID). (Or, to put things "
+"another way, when a multithreaded process does an B<execve>(2), at "
+"completion of the call, it appears as though the B<execve>(2) occurred in "
+"the thread group leader, regardless of which thread did the B<execve>(2).) "
+"This resetting of the thread ID looks very confusing to tracers:"
+msgstr ""
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "\\[bu]"
+msgstr "\\[bu]"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"All other threads stop in B<PTRACE_EVENT_EXIT> stop, if the "
+"B<PTRACE_O_TRACEEXIT> option was turned on. Then all other threads except "
+"the thread group leader report death as if they exited via B<_exit>(2) with "
+"exit code 0."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The execing tracee changes its thread ID while it is in the B<execve>(2). "
+"(Remember, under ptrace, the \"pid\" returned from B<waitpid>(2), or fed "
+"into ptrace calls, is the tracee's thread ID.) That is, the tracee's thread "
+"ID is reset to be the same as its process ID, which is the same as the "
+"thread group leader's thread ID."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Then a B<PTRACE_EVENT_EXEC> stop happens, if the B<PTRACE_O_TRACEEXEC> "
+"option was turned on."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If the thread group leader has reported its B<PTRACE_EVENT_EXIT> stop by "
+"this time, it appears to the tracer that the dead thread leader \"reappears "
+"from nowhere\". (Note: the thread group leader does not report death via "
+"I<WIFEXITED(status)> until there is at least one other live thread. This "
+"eliminates the possibility that the tracer will see it dying and then "
+"reappearing.) If the thread group leader was still alive, for the tracer "
+"this may look as if thread group leader returns from a different system call "
+"than it entered, or even \"returned from a system call even though it was "
+"not in any system call\". If the thread group leader was not traced (or was "
+"traced by a different tracer), then during B<execve>(2) it will appear as "
+"if it has become a tracee of the tracer of the execing tracee."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"All of the above effects are the artifacts of the thread ID change in the "
+"tracee."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The B<PTRACE_O_TRACEEXEC> option is the recommended tool for dealing with "
+"this situation. First, it enables B<PTRACE_EVENT_EXEC> stop, which occurs "
+"before B<execve>(2) returns. In this stop, the tracer can use "
+"B<PTRACE_GETEVENTMSG> to retrieve the tracee's former thread ID. (This "
+"feature was introduced in Linux 3.0.) Second, the B<PTRACE_O_TRACEEXEC> "
+"option disables legacy B<SIGTRAP> generation on B<execve>(2)."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"When the tracer receives B<PTRACE_EVENT_EXEC> stop notification, it is "
+"guaranteed that except this tracee and the thread group leader, no other "
+"threads from the process are alive."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"On receiving the B<PTRACE_EVENT_EXEC> stop notification, the tracer should "
+"clean up all its internal data structures describing the threads of this "
+"process, and retain only one data structure\\[em]one which describes the "
+"single still running tracee, with"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "thread ID == thread group ID == process ID.\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Example: two threads call B<execve>(2) at the same time:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"*** we get syscall-enter-stop in thread 1: **\n"
+"PID1 execve(\"/bin/foo\", \"foo\" E<lt>unfinished ...E<gt>\n"
+"*** we issue PTRACE_SYSCALL for thread 1 **\n"
+"*** we get syscall-enter-stop in thread 2: **\n"
+"PID2 execve(\"/bin/bar\", \"bar\" E<lt>unfinished ...E<gt>\n"
+"*** we issue PTRACE_SYSCALL for thread 2 **\n"
+"*** we get PTRACE_EVENT_EXEC for PID0, we issue PTRACE_SYSCALL **\n"
+"*** we get syscall-exit-stop for PID0: **\n"
+"PID0 E<lt>... execve resumedE<gt> ) = 0\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If the B<PTRACE_O_TRACEEXEC> option is I<not> in effect for the execing "
+"tracee, and if the tracee was B<PTRACE_ATTACH>ed rather that "
+"B<PTRACE_SEIZE>d, the kernel delivers an extra B<SIGTRAP> to the tracee "
+"after B<execve>(2) returns. This is an ordinary signal (similar to one "
+"which can be generated by I<kill -TRAP>), not a special kind of ptrace-"
+"stop. Employing B<PTRACE_GETSIGINFO> for this signal returns I<si_code> set "
+"to 0 (I<SI_USER>). This signal may be blocked by signal mask, and thus may "
+"be delivered (much) later."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Usually, the tracer (for example, B<strace>(1)) would not want to show this "
+"extra post-execve B<SIGTRAP> signal to the user, and would suppress its "
+"delivery to the tracee (if B<SIGTRAP> is set to B<SIG_DFL>, it is a killing "
+"signal). However, determining I<which> B<SIGTRAP> to suppress is not easy. "
+"Setting the B<PTRACE_O_TRACEEXEC> option or using B<PTRACE_SEIZE> and thus "
+"suppressing this extra B<SIGTRAP> is the recommended approach."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Real parent"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The ptrace API (ab)uses the standard UNIX parent/child signaling over "
+"B<waitpid>(2). This used to cause the real parent of the process to stop "
+"receiving several kinds of B<waitpid>(2) notifications when the child "
+"process is traced by some other process."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Many of these bugs have been fixed, but as of Linux 2.6.38 several still "
+"exist; see BUGS below."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "As of Linux 2.6.38, the following is believed to work correctly:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"exit/death by signal is reported first to the tracer, then, when the tracer "
+"consumes the B<waitpid>(2) result, to the real parent (to the real parent "
+"only when the whole multithreaded process exits). If the tracer and the "
+"real parent are the same process, the report is sent only once."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "RETURN VALUE"
+msgstr "VALOR DEVUELTO"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"On success, the B<PTRACE_PEEK*> requests return the requested data (but see "
+"NOTES), the B<PTRACE_SECCOMP_GET_FILTER> request returns the number of "
+"instructions in the BPF program, the B<PTRACE_GET_SYSCALL_INFO> request "
+"returns the number of bytes available to be written by the kernel, and other "
+"requests return zero."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "On success, PTRACE_PEEK* requests return the requested data, while other "
+#| "requests return zero. On error, all requests return -1, and I<errno>(3) "
+#| "is set appropriately. Since the value returned by a successful "
+#| "PTRACE_PEEK* request may be -1, the caller must check I<errno> after such "
+#| "requests to determine whether or not an error occurred."
+msgid ""
+"On error, all requests return -1, and I<errno> is set to indicate the "
+"error. Since the value returned by a successful B<PTRACE_PEEK*> request may "
+"be -1, the caller must clear I<errno> before the call, and then check it "
+"afterward to determine whether or not an error occurred."
+msgstr ""
+"En caso de éxito, las peticiones PTRACE_PEEK* devuelven los datos "
+"solicitados, mientras que las otras peticiones devuelven cero. En caso de "
+"error, todas las peticiones devuelven -1 y a I<errno>(3) se le asigna un "
+"valor apropiado. Ya que el valor devuelto por una petición PTRACE_PEEK* con "
+"éxito puede ser -1, el invocador debe comprobar I<errno> después de tales "
+"peticiones para determinar si hubo error o no."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "ERRORS"
+msgstr "ERRORES"
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EBUSY>"
+msgstr "B<EBUSY>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"(i386 only) There was an error with allocating or freeing a debug register."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EFAULT>"
+msgstr "B<EFAULT>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "There was an attempt to read from or write to an invalid area in the "
+#| "parent's or child's memory, probably because the area wasn't mapped or "
+#| "accessible. Unfortunately, under Linux, different variations of this "
+#| "fault will return EIO or EFAULT more or less arbitrarily."
+msgid ""
+"There was an attempt to read from or write to an invalid area in the "
+"tracer's or the tracee's memory, probably because the area wasn't mapped or "
+"accessible. Unfortunately, under Linux, different variations of this fault "
+"will return B<EIO> or B<EFAULT> more or less arbitrarily."
+msgstr ""
+"Se ha intentado leer de o escribir en una área inválida de la memoria del "
+"padre o del hijo, probablemente porque el área no estaba asignada o no era "
+"accesible. Desafortunadamente, en Linux, diferentes versiones de este fallo "
+"devolverán EIO o EFAULT de forma más o menos arbitraria."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EINVAL>"
+msgstr "B<EINVAL>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "An attempt was made to set an invalid option."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EIO>"
+msgstr "B<EIO>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "I<request> is invalid, or an attempt was made to read from or write to an "
+#| "invalid area in the parent's or child's memory, or there was a word-"
+#| "alignment violation, or an invalid signal was specified during a restart "
+#| "request."
+msgid ""
+"I<request> is invalid, or an attempt was made to read from or write to an "
+"invalid area in the tracer's or the tracee's memory, or there was a word-"
+"alignment violation, or an invalid signal was specified during a restart "
+"request."
+msgstr ""
+"I<Petición> no es válida o se ha intentado leer de o escribir en una área "
+"inválida de la memoria del padre o del hijo, o se ha producido una violación "
+"en la alíneación de palabra o se ha especificado una señal inválida durante "
+"una petición de reinicio."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EPERM>"
+msgstr "B<EPERM>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "The specified process cannot be traced. This could be because the parent "
+#| "has insufficient privileges; non-root processes cannot trace processes "
+#| "that they cannot send signals to or those running setuid/setgid programs, "
+#| "for obvious reasons. Alternatively, the process may already be being "
+#| "traced, or be B<init> (pid 1)."
+msgid ""
+"The specified process cannot be traced. This could be because the tracer "
+"has insufficient privileges (the required capability is B<CAP_SYS_PTRACE>); "
+"unprivileged processes cannot trace processes that they cannot send signals "
+"to or those running set-user-ID/set-group-ID programs, for obvious reasons. "
+"Alternatively, the process may already be being traced, or (before Linux "
+"2.6.26) be B<init>(1) (PID 1)."
+msgstr ""
+"El proceso indicado no puede ser rastreado. Esto podría deberse a que el "
+"padre no tiene suficientes privilegios. Los procesos que no son del root no "
+"pueden rastrear procesos a los que no pueden enviar señales o programas en "
+"ejecución setuid/setgid por razones obvias. Alternativamente, puede que el "
+"proceso ya se esté rastreando o ser el proceso B<init> (pid 1)."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<ESRCH>"
+msgstr "B<ESRCH>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "The specified process does not exist, or is not currently being traced by "
+#| "the caller, or is not stopped (for requests that require that)."
+msgid ""
+"The specified process does not exist, or is not currently being traced by "
+"the caller, or is not stopped (for requests that require a stopped tracee)."
+msgstr ""
+"El proceso especificado no existe o el invocador no lo está rastreando "
+"actualmente o no está parado (para peticiones que necesiten que lo esté)."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "STANDARDS"
+msgstr "ESTÁNDARES"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "None."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "HISTORY"
+msgstr "HISTORIAL"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "SVr4, 4.3BSD."
+msgstr "SVr4, 4.3BSD."
+
+#. See commit 00cd5c37afd5f431ac186dd131705048c0a11fdb
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid "B<init>(8), the process with pid 1, may not be traced."
+msgid ""
+"Before Linux 2.6.26, B<init>(1), the process with PID 1, may not be traced."
+msgstr "B<init>(8), el proceso con PID 1, no puede ser rastreado."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "NOTES"
+msgstr "NOTAS"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "Although arguments to B<ptrace> are interpreted according to the "
+#| "prototype given, GNU libc currently declares B<ptrace> as a variadic "
+#| "function with only the I<request> argument fixed. This means that "
+#| "unneeded trailing arguments may be omitted, though doing so makes use of "
+#| "undocumented B<gcc(1)> behavior."
+msgid ""
+"Although arguments to B<ptrace>() are interpreted according to the "
+"prototype given, glibc currently declares B<ptrace>() as a variadic "
+"function with only the I<request> argument fixed. It is recommended to "
+"always supply four arguments, even if the requested operation does not use "
+"them, setting unused/ignored arguments to I<0L> or I<(void\\ *)\\ 0>."
+msgstr ""
+"Aunque los argumentos de B<ptrace> se interpretan según el prototipo dado, "
+"GNU libc declara actualmente B<ptrace> como una función en la que sólo el "
+"argumento I<petición> tiene sentido. Esto significa que se pueden omitir "
+"los argumentos del final innecesarios, aunque al hacerlo así se hace uso de "
+"comportamiento de B<gcc(1)> sin documentar."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A tracees parent continues to be the tracer even if that tracer calls "
+"B<execve>(2)."
+msgstr ""
+
+#. See http://lkml.org/lkml/2008/5/8/375
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The layout of the contents of memory and the USER area are quite operating-"
+"system- and architecture-specific. The offset supplied, and the data "
+"returned, might not entirely match with the definition of I<struct user>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "The size of a \"word\" is determined by the OS variant (e.g., for 32-bit "
+#| "Linux it's 32 bits, etc.)."
+msgid ""
+"The size of a \"word\" is determined by the operating-system variant (e.g., "
+"for 32-bit Linux it is 32 bits)."
+msgstr ""
+"El tamaño de una \"palabra\" viene determinado por la variante del sistema "
+"operativo (por ejemplo, para un Linux de 32 bits es de 32 bits, etc.)"
+
+#. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "This page documents the way the B<ptrace> call works currently in Linux. "
+#| "Its behavior differs noticeably on other flavors of Unix. In any case, "
+#| "use of B<ptrace> is highly OS- and architecture-specific."
+msgid ""
+"This page documents the way the B<ptrace>() call works currently in Linux. "
+"Its behavior differs significantly on other flavors of UNIX. In any case, "
+"use of B<ptrace>() is highly specific to the operating system and "
+"architecture."
+msgstr ""
+"Esta página documenta la forma en que funciona actualmente la llamada "
+"B<ptrace> en Linux. Su comportamiento difiere notablemente en otros Unix. En "
+"cualquier caso, el uso B<ptrace> es altamente específico del sistema "
+"operativo (y la arquitectura)."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Ptrace access mode checking"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Various parts of the kernel-user-space API (not just B<ptrace>() "
+"operations), require so-called \"ptrace access mode\" checks, whose outcome "
+"determines whether an operation is permitted (or, in a few cases, causes a "
+"\"read\" operation to return sanitized data). These checks are performed in "
+"cases where one process can inspect sensitive information about, or in some "
+"cases modify the state of, another process. The checks are based on factors "
+"such as the credentials and capabilities of the two processes, whether or "
+"not the \"target\" process is dumpable, and the results of checks performed "
+"by any enabled Linux Security Module (LSM)\\[em]for example, SELinux, Yama, "
+"or Smack\\[em]and by the commoncap LSM (which is always invoked)."
+msgstr ""
+
+#. commit 006ebb40d3d65338bd74abb03b945f8d60e362bd
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Prior to Linux 2.6.27, all access checks were of a single type. Since Linux "
+"2.6.27, two access mode levels are distinguished:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_MODE_READ>"
+msgstr "B<PTRACE_MODE_READ>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"For \"read\" operations or other operations that are less dangerous, such "
+"as: B<get_robust_list>(2); B<kcmp>(2); reading I</proc/>pidI</auxv>, I</proc/"
+">pidI</environ>, or I</proc/>pidI</stat>; or B<readlink>(2) of a I</proc/"
+">pidI</ns/*> file."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_MODE_ATTACH>"
+msgstr "B<PTRACE_MODE_ATTACH>"
+
+#
+#
+#. Regarding the above description of the distinction between
+#. PTRACE_MODE_READ and PTRACE_MODE_ATTACH, Stephen Smalley notes:
+#. That was the intent when the distinction was introduced, but it doesn't
+#. appear to have been properly maintained, e.g. there is now a common
+#. helper lock_trace() that is used for
+#. /proc/pid/{stack,syscall,personality} but checks PTRACE_MODE_ATTACH, and
+#. PTRACE_MODE_ATTACH is also used in timerslack_ns_write/show(). Likely
+#. should review and make them consistent. There was also some debate
+#. about proper handling of /proc/pid/fd. Arguably that one might belong
+#. back in the _ATTACH camp.
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"For \"write\" operations, or other operations that are more dangerous, such "
+"as: ptrace attaching (B<PTRACE_ATTACH>) to another process or calling "
+"B<process_vm_writev>(2). (B<PTRACE_MODE_ATTACH> was effectively the default "
+"before Linux 2.6.27.)"
+msgstr ""
+
+#. commit caaee6234d05a58c5b4d05e7bf766131b810a657
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Since Linux 4.5, the above access mode checks are combined (ORed) with one "
+"of the following modifiers:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_MODE_FSCREDS>"
+msgstr "B<PTRACE_MODE_FSCREDS>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Use the caller's filesystem UID and GID (see B<credentials>(7)) or "
+"effective capabilities for LSM checks."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_MODE_REALCREDS>"
+msgstr "B<PTRACE_MODE_REALCREDS>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Use the caller's real UID and GID or permitted capabilities for LSM checks. "
+"This was effectively the default before Linux 4.5."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Because combining one of the credential modifiers with one of the "
+"aforementioned access modes is typical, some macros are defined in the "
+"kernel sources for the combinations:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_MODE_READ_FSCREDS>"
+msgstr "B<PTRACE_MODE_READ_FSCREDS>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Defined as B<PTRACE_MODE_READ | PTRACE_MODE_FSCREDS>."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_MODE_READ_REALCREDS>"
+msgstr "B<PTRACE_MODE_READ_REALCREDS>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Defined as B<PTRACE_MODE_READ | PTRACE_MODE_REALCREDS>."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_MODE_ATTACH_FSCREDS>"
+msgstr "B<PTRACE_MODE_ATTACH_FSCREDS>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Defined as B<PTRACE_MODE_ATTACH | PTRACE_MODE_FSCREDS>."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_MODE_ATTACH_REALCREDS>"
+msgstr "B<PTRACE_MODE_ATTACH_REALCREDS>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Defined as B<PTRACE_MODE_ATTACH | PTRACE_MODE_REALCREDS>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "One further modifier can be ORed with the access mode:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_MODE_NOAUDIT> (since Linux 3.3)"
+msgstr "B<PTRACE_MODE_NOAUDIT> (desde Linux 3.3)"
+
+#. commit 69f594a38967f4540ce7a29b3fd214e68a8330bd
+#. Just for /proc/pid/stat
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Don't audit this access mode check. This modifier is employed for ptrace "
+"access mode checks (such as checks when reading I</proc/>pidI</stat>) that "
+"merely cause the output to be filtered or sanitized, rather than causing an "
+"error to be returned to the caller. In these cases, accessing the file is "
+"not a security violation and there is no reason to generate a security audit "
+"record. This modifier suppresses the generation of such an audit record for "
+"the particular access check."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Note that all of the B<PTRACE_MODE_*> constants described in this subsection "
+"are kernel-internal, and not visible to user space. The constant names are "
+"mentioned here in order to label the various kinds of ptrace access mode "
+"checks that are performed for various system calls and accesses to various "
+"pseudofiles (e.g., under I</proc>). These names are used in other manual "
+"pages to provide a simple shorthand for labeling the different kernel checks."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The algorithm employed for ptrace access mode checking determines whether "
+"the calling process is allowed to perform the corresponding action on the "
+"target process. (In the case of opening I</proc/>pid files, the \"calling "
+"process\" is the one opening the file, and the process with the "
+"corresponding PID is the \"target process\".) The algorithm is as follows:"
+msgstr ""
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "(1)"
+msgstr "(1)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If the calling thread and the target thread are in the same thread group, "
+"access is always allowed."
+msgstr ""
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "(2)"
+msgstr "(2)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If the access mode specifies B<PTRACE_MODE_FSCREDS>, then, for the check in "
+"the next step, employ the caller's filesystem UID and GID. (As noted in "
+"B<credentials>(7), the filesystem UID and GID almost always have the same "
+"values as the corresponding effective IDs.)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Otherwise, the access mode specifies B<PTRACE_MODE_REALCREDS>, so use the "
+"caller's real UID and GID for the checks in the next step. (Most APIs that "
+"check the caller's UID and GID use the effective IDs. For historical "
+"reasons, the B<PTRACE_MODE_REALCREDS> check uses the real IDs instead.)"
+msgstr ""
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "(3)"
+msgstr "(3)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Deny access if I<neither> of the following is true:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The real, effective, and saved-set user IDs of the target match the caller's "
+"user ID, I<and> the real, effective, and saved-set group IDs of the target "
+"match the caller's group ID."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The caller has the B<CAP_SYS_PTRACE> capability in the user namespace of the "
+"target."
+msgstr ""
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "(4)"
+msgstr "(4)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Deny access if the target process \"dumpable\" attribute has a value other "
+"than 1 (B<SUID_DUMP_USER>; see the discussion of B<PR_SET_DUMPABLE> in "
+"B<prctl>(2)), and the caller does not have the B<CAP_SYS_PTRACE> capability "
+"in the user namespace of the target process."
+msgstr ""
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "(5)"
+msgstr "(5)"
+
+#. (in cap_ptrace_access_check()):
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The kernel LSM I<security_ptrace_access_check>() interface is invoked to "
+"see if ptrace access is permitted. The results depend on the LSM(s). The "
+"implementation of this interface in the commoncap LSM performs the following "
+"steps:"
+msgstr ""
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "(5.1)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If the access mode includes B<PTRACE_MODE_FSCREDS>, then use the caller's "
+"I<effective> capability set in the following check; otherwise (the access "
+"mode specifies B<PTRACE_MODE_REALCREDS>, so) use the caller's I<permitted> "
+"capability set."
+msgstr ""
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "(5.2)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The caller and the target process are in the same user namespace, and the "
+"caller's capabilities are a superset of the target process's I<permitted> "
+"capabilities."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The caller has the B<CAP_SYS_PTRACE> capability in the target process's user "
+"namespace."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Note that the commoncap LSM does not distinguish between B<PTRACE_MODE_READ> "
+"and B<PTRACE_MODE_ATTACH>."
+msgstr ""
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid "(1)"
+msgid "(6)"
+msgstr "(1)"
+
+#
+#. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If access has not been denied by any of the preceding steps, then access is "
+"allowed."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "/proc/sys/kernel/yama/ptrace_scope"
+msgstr ""
+
+#. commit 2d514487faf188938a4ee4fb3464eeecfbdcf8eb
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"On systems with the Yama Linux Security Module (LSM) installed (i.e., the "
+"kernel was configured with B<CONFIG_SECURITY_YAMA>), the I</proc/sys/kernel/"
+"yama/ptrace_scope> file (available since Linux 3.4) can be used to restrict "
+"the ability to trace a process with B<ptrace>() (and thus also the ability "
+"to use tools such as B<strace>(1) and B<gdb>(1)). The goal of such "
+"restrictions is to prevent attack escalation whereby a compromised process "
+"can ptrace-attach to other sensitive processes (e.g., a GPG agent or an SSH "
+"session) owned by the user in order to gain additional credentials that may "
+"exist in memory and thus expand the scope of the attack."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "More precisely, the Yama LSM limits two types of operations:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Any operation that performs a ptrace access mode B<PTRACE_MODE_ATTACH> "
+"check\\[em]for example, B<ptrace>() B<PTRACE_ATTACH>. (See the \"Ptrace "
+"access mode checking\" discussion above.)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "B<ptrace>() B<PTRACE_TRACEME>."
+msgstr "B<ptrace>() B<PTRACE_TRACEME>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A process that has the B<CAP_SYS_PTRACE> capability can update the I</proc/"
+"sys/kernel/yama/ptrace_scope> file with one of the following values:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "0 (\"classic ptrace permissions\")"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"No additional restrictions on operations that perform B<PTRACE_MODE_ATTACH> "
+"checks (beyond those imposed by the commoncap and other LSMs)."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The use of B<PTRACE_TRACEME> is unchanged."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "1 (\"restricted ptrace\") [default value]"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"When performing an operation that requires a B<PTRACE_MODE_ATTACH> check, "
+"the calling process must either have the B<CAP_SYS_PTRACE> capability in the "
+"user namespace of the target process or it must have a predefined "
+"relationship with the target process. By default, the predefined "
+"relationship is that the target process must be a descendant of the caller."
+msgstr ""
+
+#. commit 90bb766440f2147486a2acc3e793d7b8348b0c22
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A target process can employ the B<prctl>(2) B<PR_SET_PTRACER> operation to "
+"declare an additional PID that is allowed to perform B<PTRACE_MODE_ATTACH> "
+"operations on the target. See the kernel source file I<Documentation/admin-"
+"guide/LSM/Yama.rst> (or I<Documentation/security/Yama.txt> before Linux "
+"4.13) for further details."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "2 (\"admin-only attach\")"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Only processes with the B<CAP_SYS_PTRACE> capability in the user namespace "
+"of the target process may perform B<PTRACE_MODE_ATTACH> operations or trace "
+"children that employ B<PTRACE_TRACEME>."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "3 (\"no attach\")"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"No process may perform B<PTRACE_MODE_ATTACH> operations or trace children "
+"that employ B<PTRACE_TRACEME>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Once this value has been written to the file, it cannot be changed."
+msgstr ""
+
+#
+#. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"With respect to values 1 and 2, note that creating a new user namespace "
+"effectively removes the protection offered by Yama. This is because a "
+"process in the parent user namespace whose effective UID matches the UID of "
+"the creator of a child namespace has all capabilities (including "
+"B<CAP_SYS_PTRACE>) when performing operations within the child user "
+"namespace (and further-removed descendants of that namespace). "
+"Consequently, when a process tries to use user namespaces to sandbox itself, "
+"it inadvertently weakens the protections offered by the Yama LSM."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "C library/kernel differences"
+msgstr "Diferencias núcleo / biblioteca C"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"At the system call level, the B<PTRACE_PEEKTEXT>, B<PTRACE_PEEKDATA>, and "
+"B<PTRACE_PEEKUSER> requests have a different API: they store the result at "
+"the address specified by the I<data> parameter, and the return value is the "
+"error flag. The glibc wrapper function provides the API given in "
+"DESCRIPTION above, with the result being returned via the function return "
+"value."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "BUGS"
+msgstr "ERRORES"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"On hosts with Linux 2.6 kernel headers, B<PTRACE_SETOPTIONS> is declared "
+"with a different value than the one for Linux 2.4. This leads to "
+"applications compiled with Linux 2.6 kernel headers failing when run on "
+"Linux 2.4. This can be worked around by redefining B<PTRACE_SETOPTIONS> to "
+"B<PTRACE_OLDSETOPTIONS>, if that is defined."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Group-stop notifications are sent to the tracer, but not to real parent. "
+"Last confirmed on 2.6.38.6."
+msgstr ""
+
+#. Note from Denys Vlasenko:
+#. Here "exits" means any kind of death - _exit, exit_group,
+#. signal death. Signal death and exit_group cases are trivial,
+#. though: since signal death and exit_group kill all other threads
+#. too, "until all other threads exit" thing happens rather soon
+#. in these cases. Therefore, only _exit presents observably
+#. puzzling behavior to ptrace users: thread leader _exit's,
+#. but WIFEXITED isn't reported! We are trying to explain here
+#. why it is so.
+#. FIXME . need to test/verify this scenario
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If a thread group leader is traced and exits by calling B<_exit>(2), a "
+"B<PTRACE_EVENT_EXIT> stop will happen for it (if requested), but the "
+"subsequent B<WIFEXITED> notification will not be delivered until all other "
+"threads exit. As explained above, if one of other threads calls "
+"B<execve>(2), the death of the thread group leader will I<never> be "
+"reported. If the execed thread is not traced by this tracer, the tracer "
+"will never know that B<execve>(2) happened. One possible workaround is to "
+"B<PTRACE_DETACH> the thread group leader instead of restarting it in this "
+"case. Last confirmed on 2.6.38.6."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A B<SIGKILL> signal may still cause a B<PTRACE_EVENT_EXIT> stop before "
+"actual signal death. This may be changed in the future; B<SIGKILL> is meant "
+"to always immediately kill tasks even under ptrace. Last confirmed on Linux "
+"3.13."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Some system calls return with B<EINTR> if a signal was sent to a tracee, but "
+"delivery was suppressed by the tracer. (This is very typical operation: it "
+"is usually done by debuggers on every attach, in order to not introduce a "
+"bogus B<SIGSTOP>). As of Linux 3.2.9, the following system calls are "
+"affected (this list is likely incomplete): B<epoll_wait>(2), and B<read>(2) "
+"from an B<inotify>(7) file descriptor. The usual symptom of this bug is "
+"that when you attach to a quiescent process with the command"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid "ptrace - process trace"
+msgid "strace -p E<lt>process-IDE<gt>\n"
+msgstr "ptrace - rastreo de un proceso"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "then, instead of the usual and expected one-line output such as"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "restart_syscall(E<lt>... resuming interrupted call ...E<gt>_\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "select(6, [5], NULL, [5], NULL_\n"
+msgstr "select(6, [5], NULL, [5], NULL_\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"('_' denotes the cursor position), you observe more than one line. For "
+"example:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+" clock_gettime(CLOCK_MONOTONIC, {15370, 690928118}) = 0\n"
+" epoll_wait(4,_\n"
+msgstr ""
+" clock_gettime(CLOCK_MONOTONIC, {15370, 690928118}) = 0\n"
+" epoll_wait(4,_\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"What is not visible here is that the process was blocked in "
+"B<epoll_wait>(2) before B<strace>(1) has attached to it. Attaching caused "
+"B<epoll_wait>(2) to return to user space with the error B<EINTR>. In this "
+"particular case, the program reacted to B<EINTR> by checking the current "
+"time, and then executing B<epoll_wait>(2) again. (Programs which do not "
+"expect such \"stray\" B<EINTR> errors may behave in an unintended way upon "
+"an B<strace>(1) attach.)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Contrary to the normal rules, the glibc wrapper for B<ptrace>() can set "
+"I<errno> to zero."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SEE ALSO"
+msgstr "VÉASE TAMBIÉN"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<gdb>(1), B<ltrace>(1), B<strace>(1), B<clone>(2), B<execve>(2), "
+"B<fork>(2), B<gettid>(2), B<prctl>(2), B<seccomp>(2), B<sigaction>(2), "
+"B<tgkill>(2), B<vfork>(2), B<waitpid>(2), B<exec>(3), B<capabilities>(7), "
+"B<signal>(7)"
+msgstr ""
+"B<gdb>(1), B<ltrace>(1), B<strace>(1), B<clone>(2), B<execve>(2), "
+"B<fork>(2), B<gettid>(2), B<prctl>(2), B<seccomp>(2), B<sigaction>(2), "
+"B<tgkill>(2), B<vfork>(2), B<waitpid>(2), B<exec>(3), B<capabilities>(7), "
+"B<signal>(7)"
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "2023-02-05"
+msgstr "5 Febrero 2023"
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "Linux man-pages 6.03"
+msgstr "Páginas de manual de Linux 6.03"
+
+#. type: TP
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_PEEKTEXT>, B<PTRACE_PEEKDATA>"
+msgstr "B<PTRACE_PEEKTEXT>, B<PTRACE_PEEKDATA>"
+
+#. type: TP
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_POKETEXT>, B<PTRACE_POKEDATA>"
+msgstr "B<PTRACE_POKETEXT>, B<PTRACE_POKEDATA>"
+
+#. type: TP
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_GETREGS>, B<PTRACE_GETFPREGS>"
+msgstr "B<PTRACE_GETREGS>, B<PTRACE_GETFPREGS>"
+
+#. type: TP
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_SETREGS>, B<PTRACE_SETFPREGS>"
+msgstr "B<PTRACE_SETREGS>, B<PTRACE_SETFPREGS>"
+
+#. type: TP
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_SYSCALL>, B<PTRACE_SINGLESTEP>"
+msgstr "B<PTRACE_SYSCALL>, B<PTRACE_SINGLESTEP>"
+
+#. type: TP
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<PTRACE_SYSEMU>, B<PTRACE_SYSEMU_SINGLESTEP> (since Linux 2.6.14)"
+msgstr "B<PTRACE_SYSEMU>, B<PTRACE_SYSEMU_SINGLESTEP> (desde Linux 2.6.14)"
+
+#. type: TH
+#: debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "2023-03-30"
+msgstr "30 Marzo 2023"
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "Linux man-pages 6.05.01"
+msgstr "Páginas de manual de Linux 6.05.01"
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Linux man-pages 6.04"
+msgstr "Linux man-pages 6.04"