diff options
Diffstat (limited to 'po/es/man2/ptrace.2.po')
-rw-r--r-- | po/es/man2/ptrace.2.po | 4026 |
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" |