summaryrefslogtreecommitdiffstats
path: root/po/ru/man2/ptrace.2.po
diff options
context:
space:
mode:
Diffstat (limited to 'po/ru/man2/ptrace.2.po')
-rw-r--r--po/ru/man2/ptrace.2.po4959
1 files changed, 4959 insertions, 0 deletions
diff --git a/po/ru/man2/ptrace.2.po b/po/ru/man2/ptrace.2.po
new file mode 100644
index 00000000..e0c35c23
--- /dev/null
+++ b/po/ru/man2/ptrace.2.po
@@ -0,0 +1,4959 @@
+# Russian translation of manpages
+# This file is distributed under the same license as the manpages-l10n package.
+# Copyright © of this file:
+# Alexey, 2016.
+# Azamat Hackimov <azamat.hackimov@gmail.com>, 2014-2017.
+# kogamatranslator49 <r.podarov@yandex.ru>, 2015.
+# Kogan, Darima <silverdk99@gmail.com>, 2014.
+# Max Is <ismax799@gmail.com>, 2016.
+# Yuri Kozlov <yuray@komyakino.ru>, 2011-2019.
+# Иван Павлов <pavia00@gmail.com>, 2017.
+msgid ""
+msgstr ""
+"Project-Id-Version: manpages-l10n\n"
+"POT-Creation-Date: 2024-03-01 17:05+0100\n"
+"PO-Revision-Date: 2019-10-12 08:58+0300\n"
+"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
+"Language-Team: Russian <man-pages-ru-talks@lists.sourceforge.net>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || "
+"(n%100>=11 && n%100<=14)? 2 : 3);\n"
+"X-Generator: Lokalize 2.0\n"
+
+#. type: TH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "ptrace"
+msgstr "ptrace"
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "2023-10-31"
+msgstr "31 октября 2023 г."
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "Linux man-pages 6.06"
+msgstr "Linux man-pages 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 "ИМЯ"
+
+#. 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 - трассировка процесса"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "LIBRARY"
+msgstr ""
+
+#. 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 ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "СИНТАКСИС"
+
+#. 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<request>B<, pid_t >I<pid>B<,>\n"
+"B< void *>I<addr>B<, void *>I<data>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 "ОПИСАНИЕ"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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 ""
+"Системный вызов B<ptrace>() позволяет указать какому процессу "
+"(«трассировщику») можно наблюдать и контролировать выполнение другого "
+"процесса («трассироемого»), просматривать и изменять его память и регистры. "
+"Обычно, он используется для реализации отладочных точек прерывания и для "
+"отслеживания системных вызовов."
+
+#. 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 ""
+"Сначала, трассировщик должен присоединиться к трассируемой нити. "
+"Присоединение и последующие команды выполняются для нитей: в многонитевом "
+"процессе трассировщик может подключаться как к каждой нити (трассировщики "
+"могут быть у разных нитей разными), так и не подключаться к некоторым нитям "
+"вовсе. Поэтому на самом деле «трассируемая нить» всегда означает «(одну) "
+"нить», а не «процесс в целом (возможно многонитевой)». Команды ptrace всегда "
+"посылаются определённой трассируемой нити с помощью вызова"
+
+#. 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_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 "где I<pid> — идентификатор соответствующей нити Linux."
+
+#. 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 ""
+"Заметим, что в этой странице «многонитевой процесс» означает группу нитей, "
+"состоящую из нитей, созданных с помощью B<clone>(2) с флагом B<CLONE_THREAD>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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 ""
+"Процесс может начать трассировку с вызова B<fork>(2), в получившемся "
+"дочернем процессе выполнить действие B<PTRACE_TRACEME>, после чего (обычно) "
+"выполнить B<execve>(2). Или же один процесс может начать отладку другого "
+"процесса при помощи B<PTRACE_ATTACH> или B<PTRACE_SEIZE>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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 ""
+"При трассировке трассируемая нить останавливается каждый раз при получении "
+"сигнала, даже если этот сигнал игнорируется (исключением является "
+"B<SIGKILL>, работающий обычным образом). Трассировщик будет уведомлён об "
+"этом при следующем вызове B<waitpid>(2) (или подобном «ожидающем» системном "
+"вызове); этот вызов вернёт значение I<status>, в котором содержится "
+"информация, указывающая на причину остановки трассируемой нити. Так как "
+"трассируемая нить остановлена, трассировщик может использовать различные "
+"запросы ptrace для обследования и изменения трассируемой нити. По окончании "
+"трассировщик разрешает трассируемой нити продолжить работу, возможно "
+"подавляя посылаемый ему сигнал (или даже отправляя вместо него другой "
+"сигнал)."
+
+#. 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 ""
+"Если флаг B<PTRACE_O_TRACEEXEC> не действует, то все успешные вызовы "
+"B<execve>(2) трассируемой нитью будут приводить к отправки сигнала "
+"B<SIGTRAP>, давая таким образом родителю шанс перехватить управление до "
+"того, как начнёт выполняться новая программа."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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 ""
+"По окончании трассировки трассировщик может заставить трассируемую нить "
+"продолжить свою работу в обычном не трассируемом режиме с помощью "
+"B<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 "Значение аргумента I<request> определяет выполняемое действие:"
+
+#. 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 ""
+"Указывает, что этот процесс будет трассирован своим родительским процессом. "
+"Вероятно, процессу не следует посылать этот запрос, если родительский "
+"процесс не готов к трассировке (аргументы I<pid>, I<addr> и I<data> "
+"игнорируются)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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 ""
+"Действие B<PTRACE_TRACEME> используется только в трассируемой нити; "
+"остальные действия предназначены только для трассировщика. Для значений, "
+"описанных ниже, в параметре I<pid> задаётся идентификатор трассируемой нити, "
+"над которой будет производиться действие. Перед выполнением действий (кроме "
+"B<PTRACE_ATTACH>, B<PTRACE_SEIZE>, B<PTRACE_INTERRUPT> и B<PTRACE_KILL>) "
+"трассируемая нить должна быть остановлена."
+
+#. 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
+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 ""
+"Читает слово по адресу I<addr>, находящееся в памяти трассируемой нити, "
+"возвращая это слово как результат вызова B<ptrace>() Linux не разделяет "
+"адресные пространства текста и данных, поэтому оба вызова абсолютно "
+"идентичны (значение I<data> игнорируется; но смотрите ЗАМЕЧАНИЯ)."
+
+#. 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
+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 ""
+"Читает слово по смещению I<addr> из области USER трассируемой нити, которая "
+"содержит информацию о регистрах и процессе (смотрите I<E<lt>sys/"
+"userhE<gt>>). Слово возвращается в качестве результата вызова B<ptrace>(). "
+"Обычно, смещение должно быть выровнено по границе слова, хотя это может "
+"зависеть от архитектуры системы. Смотрите ЗАМЕЧАНИЯ (значение I<data> "
+"игнорируется; но смотрите ЗАМЕЧАНИЯ)."
+
+#. 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
+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 ""
+"Копирует слово I<data> в память трассируемой нити по адресу I<addr>. В "
+"настоящее время, как и для B<PTRACE_PEEKTEXT> и B<PTRACE_PEEKDATA>, эти два "
+"действия одинаковы."
+
+#. 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
+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 ""
+"Копирует слово I<data> по смещению I<addr> в область USER трассирумой нити. "
+"Как и для B<PTRACE_PEEKUSER>, смещение должно быть выровнено по границе "
+"слова. Для того, чтобы сохранить целостность ядра, некоторые изменения в "
+"область USER вносить запрещено."
+
+#. 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 ""
+"Копирует, соответственно, регистры общего назначения или регистры "
+"сопроцессора трассируемой нити в память трассировщика по адресу I<data>. "
+"Формат передаваемой структуры описан в файле I<E<lt>sys/user.hE<gt>> "
+"(значение I<addr> игнорируется). Заметим, что в системах SPARC "
+"предназначение I<data> и I<addr> поменяны местами; то есть I<data> "
+"игнорируется, а регистры копируются по адресу I<addr>. B<PTRACE_GETREGS> и "
+"B<PTRACE_GETFPREGS> есть не на всех архитектурах."
+
+#. 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> (начиная с 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 ""
+"Читает регистры трассируемой нити. В I<addr> указывается, в зависящей от "
+"архитектуры форме, тип читаемых регистров. Значение B<NT_PRSTATUS> (равно 1) "
+"обычно служит для чтения регистров общего назначения. Если в ЦП есть, "
+"например, векторные регистры и для плавающей запятой, то их можно получить "
+"назначив I<addr> соответствующую константу B<NT_foo>. Значение I<data> "
+"указывает на B<struct iovec>, которая описывает расположение буфера "
+"назначения и длину. При возврате ядро изменяет B<iov.len>, возвращая "
+"реальное количество возвращаемых байт."
+
+#. 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 ""
+"Копирует, соответственно, регистры общего назначения или регистры для "
+"плавающей запятой трассируемой нити из памяти трассировщика по адресу "
+"I<data>. Как и в случае c B<PTRACE_POKEUSER>, изменения некоторых регистров "
+"общего назначения запрещены (значение I<addr> игнорируется). Заметим, что в "
+"системах SPARC предназначение I<data> и I<addr> переставлены местами; то "
+"есть I<data> игнорируется, а регистры копируются из памяти, на которую "
+"указывает адрес I<addr>. B<PTRACE_SETREGS> и B<PTRACE_SETFPREGS> есть не для "
+"всех архитектур."
+
+#. 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> (начиная с 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 ""
+"Изменяет регистры трассируемой нити. Значение I<addr> и I<data> аналогичны "
+"B<PTRACE_GETREGSET>."
+
+#. 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> (начиная с 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 ""
+"Получает информацию о сигнале, который вызвал остановку. Копирует структуру "
+"I<siginfo_t> (смотрите B<sigaction>(2)) из трассируемой нити в память "
+"трассировщика по адресу I<data> (значение I<addr> игнорируется)."
+
+#. 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> (начиная с 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 ""
+"Устанавливает информацию о сигнале. Копирует структуру I<siginfo_t>, "
+"расположенную по адресу I<data> трассировщика, в память трассируемой нити. "
+"Влияет только на сигналы, которые обычно были бы доставлены трассируемой "
+"нити и были пойманы трассировщиком. Затруднительно отличить обычные сигналы "
+"от созданных самим B<ptrace>() (значение I<addr> игнорируется)."
+
+#. 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> (начиная с 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 ""
+"Получает структуры I<siginfo_t> не удаляя сигналы из очереди. Значение "
+"I<addr> указывает на структуру I<ptrace_peeksiginfo_args>, которая задаёт "
+"начальную позицию, из которой нужно начать копирование сигналов, а также их "
+"количество. Структуры I<siginfo_t> копируются в буфер, указываемый в "
+"I<data>. Возвращаемое значение содержит количество скопированных сигналов "
+"(ноль означает, что сигналов в указанной позиции нет). Внутри возвращаемых "
+"структур I<siginfo> в поле I<si_code> включается информация (B<__SI_CHLD>, "
+"B<__SI_FAULT> и т. д.), которая по-другому никак не выдаётся в "
+"пользовательское пространство."
+
+#. 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 ""
+"struct ptrace_peeksiginfo_args {\n"
+" u64 off; /* начальная позиция в очереди, с которой\n"
+" начинается копирование сигналов */\n"
+" u32 flags; /* PTRACE_PEEKSIGINFO_SHARED или 0 */\n"
+" s32 nr; /* количество копируемых сигналов */\n"
+"};\n"
+
+#. 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 ""
+"В настоящее время определён только один флаг, B<PTRACE_PEEKSIGINFO_SHARED>, "
+"служащий для выборки сигналов из общей очереди сигналов процессов. Если этот "
+"флаг не указан, то сигналы читаются из очереди указанной нити."
+
+#. 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> (начиная с 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 ""
+"Помещает копию маски блокированных сигналов (смотрите B<sigprocmask>(2)) в "
+"буфер, указанный в I<data> (должен быть указателем на буфер с типом "
+"I<sigset_t>). Аргумент I<addr> содержит размер буфера, указанного в I<data> "
+"(т. е. I<sizeof(sigset_t)>)."
+
+#. 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> (начиная с 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 ""
+"Изменяет маску блокированных сигналов (смотрите B<sigprocmask>(2)) на "
+"значение из буфера, указанного в I<data> (должен быть указателем на буфер с "
+"типом I<sigset_t>). Аргумент I<addr> содержит размер буфера, указанного в "
+"I<data> (т. е. I<sizeof(sigset_t)>)."
+
+#. 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 "B<PTRACE_SETOPTIONS> (начиная с 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 ""
+"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 ""
+"Устанавливает флаги ptrace из I<data> (значение I<addr> игнорируется). "
+"Значение I<data> воспринимается как битовая маска, в которой задаются "
+"следующие флаги:"
+
+#. 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> (начиная с 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 ""
+"Посылать сигнал B<SIGKILL> трассируемому, если трассировщик существует. Этот "
+"параметр полезен для надзирателей ptrace, которые хотят убедиться, что "
+"трассируемые никогда не выйдут из-под контроля трассировщика."
+
+#. 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> (начиная с 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 ""
+"Останавливать трассируемую нить при следующем вызове B<clone>(2) и "
+"автоматически запускать трассировку только что склонированного процесса, "
+"который начнёт выполнение с обработки сигнала B<SIGSTOP> или "
+"B<PTRACE_EVENT_STOP>, если используется B<PTRACE_SEIZE>. Вызов B<waitpid>(2) "
+"вернёт трассировщику значение I<status>, которое равно"
+
+#. 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 ""
+"Значение PID нового процесса можно получить с помощью B<PTRACE_GETEVENTMSG>."
+
+#. 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 ""
+"В некоторых случаях вызовы B<clone>(2) могут быть не пойманы. Если "
+"трассируемая нить вызывает B<clone>(2) с флагом B<CLONE_VFORK>, то будет "
+"доставлен B<PTRACE_EVENT_VFORK>, если установлен B<PTRACE_O_TRACEVFORK>; в "
+"противном случае, если трассируемая нить вызывает B<clone>(2) с "
+"установленным сигналом выхода равным B<SIGCHLD>, то будет доставлен "
+"B<PTRACE_EVENT_FORK>, если установлен B<PTRACE_O_TRACEFORK>."
+
+#. 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> (начиная с 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 ""
+"Останавливать трассируемую нить при следующем вызове B<execve>(). Вызов "
+"B<waitpid>(2) вернёт трассировщику значение I<status>, которое равно"
+
+#. 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 ""
+"Если исполняемая нить не является лидером группы нитей, то идентификатор "
+"нити сбрасывается в значение идентификатора лидера группы нитей перед его "
+"остановкой. Начиная с Linux 3.0, предыдущий идентификатор нити может быть "
+"получен с помощью B<PTRACE_GETEVENTMSG>."
+
+#. 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> (начиная с 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 ""
+"Останавливать трассируемую нить при его завершении (exit). Вызов "
+"B<waitpid>() вернёт трассировщику значение I<status>, которое равно"
+
+#. 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 ""
+"Значение кода завершения трассируемой нити можно получить с помощью "
+"B<PTRACE_GETEVENTMSG>."
+
+#. 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> (начиная с 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 ""
+"Останавливать трассируемую нить при следующем вызове B<fork>(2) и "
+"автоматически запускать трассировку только что созданного с помощью fork "
+"процесса, который начнёт выполнение с обработки сигнала B<SIGSTOP> или "
+"B<PTRACE_EVENT_STOP>, если используется B<PTRACE_SEIZE>. Вызов B<waitpid>(2) "
+"вернёт трассировщику значение I<status>, которое равно"
+
+#. 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> (начиная с 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 ""
+"При доставке сигналов ловушек системных вызовов, устанавливать бит 7 в "
+"номере сигнала (т. е., доставляется I<SIGTRAP|0x80>). Это позволяет "
+"трассировщику легко отличить обычные ловушки от тех, которые были вызваны "
+"системным вызовом."
+
+#. 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> (начиная с 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 ""
+"Останавливать трассируемую нить при следующем вызове B<vfork>(2) и "
+"автоматически запускать трассировку только что созданного с помощью vfork "
+"процесса, который начнёт выполнение с обработки сигнала B<SIGSTOP> или "
+"B<PTRACE_EVENT_STOP>, если используется B<PTRACE_SEIZE>. Вызов B<waitpid>(2) "
+"вернёт трассировщику значение I<status>, которое равно"
+
+#. 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> (начиная с 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 ""
+"Останавливать трассируемую нить при следующем вызове B<vfork>(2). Вызов "
+"B<waitpid>(2) вернёт трассировщику значение I<status>, которое равно"
+
+#. 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 ""
+"Значение PID нового процесса можно получить (начиная с Linux 2.6.18) с "
+"помощью B<PTRACE_GETEVENTMSG>."
+
+#. 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> (начиная с 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 ""
+"Останавливать трассируемую нить при возникновении правила B<seccomp>(2) "
+"B<SECCOMP_RET_TRACE>. Вызов B<waitpid>(2) вернёт трассировщику значение "
+"I<status>, которое равно"
+
+#. 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 ""
+"Так как это останавливает B<PTRACE_EVENT>, это похоже на syscall-enter-stop. "
+"Дополнительную информацию смотрите в замечании к B<PTRACE_EVENT_SECCOMP> "
+"ниже. Данные сообщения события seccomp (из части B<SECCOMP_RET_DATA> правила "
+"фильтрации seccomp) можно получить с помощью B<PTRACE_GETEVENTMSG>."
+
+#. 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> (начиная с 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 ""
+"Приостановить защиты seccomp трассируемого. Это применяется независимо от "
+"режима и может быть использовано когда трассируемый ещё не установил фильтры "
+"seccomp. То есть, корректным действием будет приостановка защит seccomp "
+"трассируемого, до того как их установит трассируемый, позволить "
+"трассируемому установить фильтры, и затем очистить этот флаг, когда нужно "
+"возобновить работу фильтров. Установка этого параметра требует, чтобы "
+"трассировщик имел мандат B<CAP_SYS_ADMIN>, не было установлено никаких защит "
+"seccomp и не установлен сам B<PTRACE_O_SUSPEND_SECCOMP>."
+
+#. 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> (начиная с 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 ""
+"Возвращает сообщения (с типом I<unsigned long>) о событии ptrace, которое "
+"только что произошло, помещая его по адресу I<data> в памяти трассировщика. "
+"Для B<PTRACE_EVENT_EXIT> это код завершения трассируемой нити. Для "
+"B<PTRACE_EVENT_FORK>, B<PTRACE_EVENT_VFORK>, B<PTRACE_EVENT_VFORK_DONE> и "
+"B<PTRACE_EVENT_CLONE> это PID нового процесса. Для B<PTRACE_EVENT_SECCOMP> "
+"это B<SECCOMP_RET_DATA> из фильтра B<seccomp>(2), связанного со сработавшим "
+"правилом (значение I<addr> игнорируется)."
+
+#. 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
+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 ""
+"Возобновляет работу остановленной трассируемой нити. Если значение I<data> "
+"не равно нулю, то оно считается номером сигнала, который надо доставить "
+"трассируемой нити; в противном случае сигнал не передаётся. Таким образом, "
+"например, трассировщик может контролировать передачу сигнала трассируемой "
+"нити (значение I<addr> игнорируется)."
+
+#. 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_SINGLESTEP stops"
+msgid "B<PTRACE_SINGLESTEP>"
+msgstr "Остановки PTRACE_SINGLESTEP"
+
+#. 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 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 ""
+"Аналогично B<PTRACE_CONT> они перезапускают остановленную трассируемую нить, "
+"но указывают, что процесс должен быть остановлен перед входом/выходом из "
+"системного вызова, или после исполнения одной инструкции, соответственно "
+"(трассируемая нить также, как обычно, будет остановлена при получении "
+"сигнала). С точки зрения трассировщика кажется, что трассируемая нить "
+"остановлена из-за получения сигнала B<SIGTRAP>. Так, B<PTRACE_SYSCALL> "
+"например, позволяет изучить содержимое аргументов перед системным вызовом, а "
+"при следующем B<PTRACE_SYSCALL> можно просмотреть результат исполнения "
+"системного вызова. Аргумент I<data> используется как в B<PTRACE_CONT> "
+"(значение I<addr> игнорируется)."
+
+#. 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> (начиная с 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> (начиная с 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 ""
+"Действие B<PTRACE_SYSEMU> приводит к продолжению и остановке на входе в "
+"следующий системный вызов, который не будет выполнен . Смотрите описание по "
+"syscall-stop ниже. Действие B<PTRACE_SYSEMU_SINGLESTEP> выполняет тоже "
+"самое, но для одиночной инструкции, если это не системный вызов. Это "
+"действие используется программами, подобными User Mode Linux, которым нужно "
+"эмулировать все системные вызовы трассируемых нитей. Аргумент I<data> "
+"используется также как у B<PTRACE_CONT>. Аргумент I<addr> игнорируется. Эти "
+"запросы поддерживаются только на x86."
+
+#. 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> (начиная с 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 ""
+"Перезапускает остановленную трассируемую нить, но её выполнение не "
+"начинается. Полученное состояние трассируемой нити подобно процессу, который "
+"был остановлен по B<SIGSTOP> (или другим останавливающим сигналом). "
+"Дополнительную информацию смотрите в подразделе «group-stop». "
+"B<PTRACE_LISTEN> работает только для трассируемых нитей, присоединённых с "
+"помощью B<PTRACE_SEIZE>."
+
+#. 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
+msgid ""
+"Send the tracee a B<SIGKILL> to terminate it. (I<addr> and I<data> are "
+"ignored.)"
+msgstr ""
+"Посылает трассируемой нити сигнал B<SIGKILL> для его уничтожения (значения "
+"I<addr> и I<data> игнорируются)."
+
+#. [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 ""
+"I<Это действие устарело; не используйте его!> Вместо него отправляйте "
+"B<SIGKILL> напрямую с помощью B<kill>(2) или B<tgkill>(2). Проблема с "
+"действием B<PTRACE_KILL> в том, что оно требует, чтобы трассируемая нить "
+"была режиме signal-delivery-stop, в противном случае оно может не сработать "
+"(т. е., может завершиться без ошибок, но трассируемая нить не будет "
+"уничтожена). В отличие от него, отправка B<SIGKILL> напрямую не имеет "
+"данного ограничения."
+
+#. 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> (начиная с 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 ""
+"Остановить трассируемый объект. Если трассируемый объект выполняется или "
+"спит в пространстве ядра и действует B<PTRACE_SYSCALL>, то системный вызов "
+"прерывается и сообщается о syscall-exit-stop (прерванный системный вызов "
+"перезапускается при перезапуске трассируемого объекта). Если трассируемый "
+"объект был уже остановлен по сигналу и ему был послан B<PTRACE_LISTEN>, то "
+"трассируемый объект останавливается с B<PTRACE_EVENT_STOP> и "
+"I<WSTOPSIG(status)> возвращает сигнал остановки. Если в этот же момент "
+"генерируется любое другое событие ptrace-stop (например, если трассируемому "
+"посылается сигнал), то возникает ptrace-stop. Если ничего из "
+"вышеперечисленного не происходит (например, если трассируемый выполняется в "
+"пространстве пользователя), то он останавливается с B<PTRACE_EVENT_STOP> и "
+"I<WSTOPSIG(status)> == B<SIGTRAP>. B<PTRACE_INTERRUPT> работает только для "
+"трассируемых объектов, к которым подключились с помощью B<PTRACE_SEIZE>."
+
+#. 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 ""
+"Выполняет присоединение к процессу с указанным I<pid>, делая его "
+"трассируемым для вызывающего процесса. Трассируемой нити посылается "
+"B<SIGSTOP>, но нет жёсткого правила, что она будет остановлен по завершению "
+"этого вызова; используйте B<waitpid>(2) для ожидания остановки трассируемой "
+"нити. Дополнительную информацию смотрите в подразделе «Присоединение и "
+"отсоединение» (значения I<addr> и I<data> игнорируются)."
+
+#. 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 ""
+"Право выполнять B<PTRACE_ATTACH> определяется проверкой режима доступа "
+"ptrace B<PTRACE_MODE_READ_REALCREDS>; смотрите ниже."
+
+#. 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> (начиная с 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 ""
+"Выполняет присоединение к процессу, указанному в I<pid>, делает его "
+"трассируемым для вызывающего процесса. В отличие от B<PTRACE_ATTACH>, "
+"B<PTRACE_SEIZE> не останавливает процесс. О group-stops сообщается как "
+"B<PTRACE_EVENT_STOP> и I<WSTOPSIG(status)> возвращает сигнал остановки. "
+"Автоматически присоединённые потомки останавливаются с B<PTRACE_EVENT_STOP> "
+"и I<WSTOPSIG(status)> возвращает B<SIGTRAP> вместо доставки им сигнала "
+"B<SIGSTOP>. При вызове B<execve>(2) дополнительный B<SIGTRAP> не посылается. "
+"Только подключённые с помощью B<PTRACE_SEIZE> процессы могут принимать "
+"команды B<PTRACE_INTERRUPT> и B<PTRACE_LISTEN>. Только что описанное "
+"поведение «захвата» (seized) наследуется потомками, которые автоматически "
+"присоединяются с помощью B<PTRACE_O_TRACEFORK>, B<PTRACE_O_TRACEVFORK> и "
+"B<PTRACE_O_TRACECLONE>. Значение I<addr> должно быть равно нулю. В I<data> "
+"содержится битовая маска параметров ptrace, которая применяется сразу же."
+
+#. 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 ""
+"Право выполнять B<PTRACE_SEIZE> определяется проверкой режима доступа ptrace "
+"B<PTRACE_MODE_READ_REALCREDS>; смотрите ниже."
+
+#. 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> (начиная с 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 ""
+"Эта операция позволяет трассировщику получить дамп классических фильтров BPF "
+"трассируемого."
+
+#. 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 ""
+"Значение I<addr> имеет тип integer и задаёт индекс фильтра для дампа. Индекс "
+"последнего установленного фильтра равен 0. Если I<addr> больше количества "
+"установленных фильтров, то операция завершается ошибкой B<ENOENT>."
+
+#. 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 ""
+"Значение I<data> является указателем на массив I<struct sock_filter> "
+"достаточного размера для сохранения программы BPF, или NULL, если программа "
+"не будет сохраняться."
+
+#. 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 ""
+"При успешном выполнении возвращаемое значение — количество инструкций в "
+"программе BPF. Если I<data> равнялось NULL, то возвращается значение, "
+"которое можно использовать для создания массива I<struct sock_filter> "
+"корректного размера, который будет передан в последующем вызове."
+
+#. 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 ""
+"Данная операция завершается ошибкой B<EACCES>, если вызывающий не имеет "
+"мандата B<CAP_SYS_ADMIN>, или если вызывающий находится в ограничительном "
+"или фильтрующем режиме. Если фильтр, на который ссылается адрес I<addr>, не "
+"является классическим фильтром BPF, то операция завершается ошибкой "
+"B<EMEDIUMTYPE>."
+
+#. 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 ""
+"Эта операция доступна только, если ядро собрано с параметрами "
+"B<CONFIG_SECCOMP_FILTER> и B<CONFIG_CHECKPOINT_RESTORE>."
+
+#. 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
+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 ""
+"Возобновляет работу остановленной трассируемой нити, аналогично "
+"B<PTRACE_CONT>, но сначала отсоединяется от него. В Linux при помощи этого "
+"вызова трассируемая нить может быть отсоединёна независимо от того, каким "
+"методом была запущена трассировка (значение I<addr> игнорируется)."
+
+#. 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> (начиная с 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 ""
+"Данная операция выполняет задачу, подобную B<get_thread_area>(2). Она читает "
+"элемент TLS из GDT, чей индекс передан в I<addr>, помещает копию элемента в "
+"I<struct user_desc>, указанную в I<data> (в отличие от "
+"B<get_thread_area>(2), значение I<entry_number> структуры I<struct "
+"user_desc> игнорируется)."
+
+#. 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> (начиная с 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 ""
+"Данная операция выполняет задачу, подобную B<set_thread_area>(2). Она "
+"изменяет элемент TLS в GDT, чей индекс указан в I<addr>, данными, "
+"переданными в структуре I<struct user_desc>, на которую указывает I<data> (в "
+"отличие от B<set_thread_area>(2), значение I<entry_number> структуры "
+"I<struct user_desc> игнорируется; иначе говоря, данная операция ptrace не "
+"может использоваться для выделения свободного элемента TLS)."
+
+#. 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> (начиная с 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 ""
+"Возвращает информацию о системном вызове, который привёл к останову. "
+"Информация помещается в буфер, указанный в аргументе I<data>, который должен "
+"быть указателем на буфер с типом I<struct ptrace_syscall_info>. Аргумент "
+"I<addr> содержит размер буфера, на который указывает аргумент I<data> (т. "
+"е., I<sizeof(struct ptrace_syscall_info)>). Возвращаемое значение равно "
+"количеству байт, записанных ядром. Если размер записываемых ядром данных "
+"больше значения из аргумента I<addr>, то данные результата обрезаются."
+
+#. 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 "Структура I<ptrace_syscall_info> содержит следующие поля:"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, 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"
+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 ""
+"struct ptrace_syscall_info {\n"
+" __u8 op; /* тип останова системного вызова */\n"
+" __u32 arch; /* значение AUDIT_ARCH_*; смотрите seccomp(2) */\n"
+" __u64 instruction_pointer; /* указатель инструкции ЦП */\n"
+" __u64 stack_pointer; /* указатель стека ЦП */\n"
+" union {\n"
+" struct { /* op == PTRACE_SYSCALL_INFO_ENTRY */\n"
+" __u64 nr; /* номер системного вызова */\n"
+" __u64 args[6]; /* аргументы системного вызова */\n"
+" } entry;\n"
+" struct { /* op == PTRACE_SYSCALL_INFO_EXIT */\n"
+" __s64 rval; /* возвращаемое значение системного вызова */\n"
+" __u8 is_error; /* флаг ошибки системного вызова;\n"
+" логический: в rval содержится\n"
+" значение ошибки (-ERRCODE) или\n"
+" или не ошибки? */\n"
+" } exit;\n"
+" struct { /* op == PTRACE_SYSCALL_INFO_SECCOMP */\n"
+" __u64 nr; /* номер системного вызова */\n"
+" __u64 args[6]; /* аргументы системного вызова */\n"
+" __u32 ret_data; /* часть SECCOMP_RET_DATA\n"
+" возвращаемого значения\n"
+" SECCOMP_RET_TRACE */\n"
+" } seccomp;\n"
+" };\n"
+"};\n"
+
+#. 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 ""
+"Поля I<op>, I<arch>, I<instruction_pointer> и I<stack_pointer> определены "
+"для всех видов остановов системных вызовов ptrace. Оставшаяся структура "
+"является объединением; из неё нужно читать только те поля, которые имеют "
+"смысл для конкретного вызова останова системного вызова, указанного в поле "
+"I<op>."
+
+#. 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 ""
+"В поле I<op> указывается одно из следующих значений (определены в "
+"I<E<lt>linux/ptrace.hE<gt>>), определяющих тип возникшего останова и какая "
+"часть объединения заполнена:"
+
+#. 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 ""
+"Компонент объединения I<entry> содержит информацию о входе в останов "
+"системного вызова."
+
+#. 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 ""
+"Компонент объединения I<exit> содержит информацию о выходе из останова "
+"системного вызова."
+
+#. 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 ""
+"Компонент объединения I<seccomp> содержит информацию об останове "
+"B<PTRACE_EVENT_SECCOMP>."
+
+#. 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 "Смерть в момент ptrace"
+
+#. 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 ""
+"Когда (возможно, многонитевой) процесс получает уничтожающий сигнал (из-за "
+"того, что обработчик равен B<SIG_DFL> и что действием по умолчанию является "
+"уничтожение процесса), все нити завершают работу (exit). Трассируемые нити "
+"сообщают о своей смерти своим трассировщикам. Уведомления об этом событии "
+"доставляется с помощью B<waitpid>(2)."
+
+#. 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 ""
+"Заметим, что уничтожающий сигнал сначала вызовет вхождение в режим signal-"
+"delivery-stop (только для одной трассируемой нити), и только после этого "
+"будет внедрён трассировщиком (или после того, как был отослан нити, которая "
+"не является трассируемой), затем I<все> трассируемые нити в многонитевом "
+"процессе завершаются по сигналу (термин «signal-delivery-stop» объяснён "
+"далее)."
+
+#. 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 ""
+"Сигнал B<SIGKILL> не генерирует режим signal-delivery-stop и поэтому "
+"трассировщик не может подавить его. Сигнал B<SIGKILL> уничтожает даже внутри "
+"системных вызовов (syscall-exit-stop не генерируется перед уничтожением по "
+"B<SIGKILL>). Конечным результатом B<SIGKILL> всегда является уничтожение "
+"процесса (всех его нитей), даже если для некоторых нитей процесса "
+"выполняется трассировка."
+
+#. 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 ""
+"Когда трассируемая нить вызывает B<_exit>(2), он сообщает о своём "
+"уничтожении своему трассировщику. На оставшиеся нити ни какого влияния не "
+"оказывается."
+
+#. 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 ""
+"Если какая-нибудь нить вызывает B<exit_group>(2), то каждая трассируемая "
+"нить в этой группе нитей сообщает о своём уничтожении своему трассировщику."
+
+#. 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 ""
+"Если установлен флаг B<PTRACE_O_TRACEEXIT>, то перед непосредственным "
+"уничтожением возникает B<PTRACE_EVENT_EXIT>. Это случается при выходе "
+"посредством B<exit>(2), B<exit_group>(2) и из-за уничтожения по сигналу (за "
+"исключением B<SIGKILL>, в зависимости от версии ядра; смотрите ДЕФЕКТЫ ниже) "
+"и когда нити многонитевой процесса разрушаются при B<execve>(2)."
+
+#. 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 ""
+"Трассировщик не может предполагать, что трассируемая нить, остановленная по "
+"ptrace, существует. Если много случаев, когда трассируемая нить может быть "
+"уничтожена будучи в остановленном состоянии (например, по B<SIGKILL>). "
+"Поэтому, трассировщик должен быть готов обработать ошибку B<ESRCH> при любом "
+"действии ptrace. К сожалению, эта же ошибка возвращается, если трассируемая "
+"нить существует, но не остановлена по ptrace (для действий, которые требуют "
+"остановленной трассируемой нити), или если она не трассируется процессом, "
+"который вызвал ptrace. Трассировщику необходимо отслеживать состояние "
+"остановки/работы трассируемой нити и воспринимать B<ESRCH> как «трассируемая "
+"нить была неожиданно уничтожена» только, если он знает, что трассируемая "
+"нить была в состоянии ptrace-stop. Заметим, что нет гарантии того, что "
+"I<waitpid(WNOHANG)> всегда сообщит о состоянии уничтожения трассируемой "
+"нити, если действие ptrace вернуло B<ESRCH>. Вызов I<waitpid(WNOHANG)> "
+"вместо этого может вернуть 0. Другими словами, трассируемая нить может быть "
+"«ещё не полностью уничтожена», но уже отклонять действия ptrace."
+
+#. 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 ""
+"Трассировщик не может предполагать, что I<всегда> поймает завершение "
+"существования трассируемой нити с помощью I<WIFEXITED(status)> или "
+"I<WIFSIGNALED(status)>; есть несколько случаев, когда этого не происходит. "
+"Например, если нить — не лидер группы нитей — вызывает B<execve>(2) и "
+"исчезает; её PID больше не появится снова, и все последующие остановки по "
+"ptrace будут приходить от PID лидера группы нитей."
+
+#. 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 ""
+"Трассируемый может находиться в двух состояниях: выполнения или остановки. В "
+"целях ptrace, трассируемый, заблокированный в системном вызове (например, "
+"B<read>(2), B<pause>(2) и т.д.), считается выполняющимся, даже если он "
+"заблокирован уже долго. Состояние трассируемого после B<PTRACE_LISTEN> "
+"находится, отчасти, в «сумеречной зоне»: не не в каком-либо из ptrace-stop "
+"(команды ptrace не будут с ним работать и он будет посылать уведомления "
+"B<waitpid>(2)), но он также может считаться за «остановленный», так как он "
+"не выполняет инструкций (не планируется для этого), и если он был в group-"
+"stop до B<PTRACE_LISTEN>, он не будет отвечать на сигналы до тех пор, пока "
+"не получит B<SIGCONT>."
+
+#. 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 ""
+"Есть много разновидностей останова, и в обсуждении ptrace они часто "
+"объединены. Поэтому очень важно использовать точную терминологию."
+
+#. 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 ""
+"В этой справочной странице любое состояние останова, в котором трассируемая "
+"нить готова выполнить действия ptrace трассировщика, называется I<ptrace-"
+"stop>. В свою очередь, ptrace-stop можно разделить на I<signal-delivery-"
+"stop>, I<group-stop>, I<syscall-stop>, I<PTRACE_EVENT stops> и так далее. "
+"Далее эти состояния останова будут описаны подробней."
+
+#. 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 ""
+"Когда выполняющаяся трассируемая нить входит в ptrace-stop, это видит "
+"трассировщик с помощью B<waitpid>(2) (или через другой системный вызов "
+"«wait»). В большей части текста данной справочной страницы предполагается, "
+"что трассировщик ждёт с помощью:"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+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 ""
+"О трассируемой нити в состоянии ptrace-stop сообщается возвратом I<pid> "
+"большим 0 и значением истины по I<WIFSTOPPED(status)>."
+
+#. 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 ""
+"Флаг B<__WALL> не содержит флагов B<WSTOPPED> и B<WEXITED>, но подразумевает "
+"их назначение."
+
+#. 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 ""
+"Устанавливать флаг B<WCONTINUED> при вызове B<waitpid>(2) не рекомендуется: "
+"состояние «continued» относится к определённому процессу и его поглощение "
+"может запутать реального родителя трассируемой нити."
+
+#. 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 ""
+"Использование флага B<WNOHANG> может привести к тому, что B<waitpid>(2) "
+"вернёт 0 («не ждать результатов, если они не готовы»), даже если "
+"трассировщик знает, что должно быть уведомление. Пример:"
+
+#. 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 ""
+"errno = 0;\n"
+" ptrace(PTRACE_CONT, pid, 0L, 0L);\n"
+" if (errno == ESRCH) {\n"
+" /* трассируемая нить мертва */\n"
+" r = waitpid(tracee, &status, __WALL | WNOHANG);\n"
+" /* r может быть 0 ! */\n"
+" }\n"
+
+#. 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 ""
+"Существуют следующие разновидности ptrace-stop: signal-delivery-stop, group-"
+"stop, остановки B<PTRACE_EVENT>, syscall-stop. Все они могут быть получены "
+"по B<waitpid>(2) с значением истинным по I<WIFSTOPPED(status)>. Их можно "
+"различить, если проверить значение I<statusE<gt>E<gt>8>, и, если есть "
+"неоднозначность этого значения, то запросив B<PTRACE_GETSIGINFO> (замечание: "
+"для выполнения этой проверки не может использоваться макрос "
+"I<WSTOPSIG(status)>, так как он возвращает значение I<(statusE<gt>E<gt>8)\\ "
+"&\\ 0xff>)."
+
+#. 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 "Signal-delivery-stop"
+
+#. 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 ""
+"Когда процесс (возможно, многонитевой) принимает какой-либо сигнал кроме "
+"B<SIGKILL>, ядро выбирает произвольную нить для его обработки (если сигнал "
+"генерируется с помощью B<tgkill>(2), то назначаемая нить может быть явно "
+"выбрана вызывающим). Если над выбранной нитью выполняется трассировка, то "
+"она попадает в режим signal-delivery-stop. В этот момент сигнал ещё не "
+"доставлен процессу и может быть отменён трассировщиком. Если трассировщик не "
+"отменил сигнал, то он передаётся трассируемой нити при следующем запросе "
+"перезапуска ptrace. Этот второй этап доставки сигнала называется в этой "
+"справочной странице I<внедрением сигнала>. Заметим, что если сигнал "
+"блокируется, то signal-delivery-stop не происходит пока сигнал не будет "
+"разблокирован (исключением, как обычно, является B<SIGSTOP>, который нельзя "
+"заблокировать)."
+
+#. 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 ""
+"Signal-delivery-stop наблюдается трассировщиком посредством B<waitpid>(2), "
+"возвращающим истинное значения для I<WIFSTOPPED(status)> с сигналом, который "
+"возвращается по I<WSTOPSIG(status)>. Если возвращается сигнал B<SIGTRAP>, то "
+"он может быть разновидностью ptrace-stop; смотрите разделы «Syscall-stops» и "
+"«execve» далее. Если I<WSTOPSIG(status)> возвращает останавливающий сигнал, "
+"то это может быть group-stop, смотрите далее."
+
+#. 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 ""
+"После обнаружения трассировщиком signal-delivery-stop, он должен "
+"перезапустить трассируемую нить вызовом"
+
+#. 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_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 ""
+"где B<PTRACE_restart> — одно из перезапускающих действий ptrace. Если "
+"значение I<sig> равно 0, то сигнал не доставляется. В противном случае, "
+"доставляется сигнал I<sig>. Данная операция в справочной странице называется "
+"I<внедрением сигнала> для того, чтобы можно отличить её от signal-delivery-"
+"stop."
+
+#. 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 ""
+"Значение I<sig> может отличаться от значения I<WSTOPSIG(status)>: "
+"трассировщик может поменять внедряемый сигнал."
+
+#. 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 ""
+"Заметим, что подавленный сигнал всё равно заставит системные вызовы "
+"завершиться как можно скорее. В этом случае системные вызовы будут "
+"перезапущены: если трассировщик использует B<PTRACE_SYSCALL>, то обнаружит, "
+"когда трассируемая нить повторно выполнила прерванный системный вызов (или "
+"системный вызов B<restart_syscall>(2) для некоторых системных вызовов, "
+"которые используют другой механизм перезапуска). Даже системные вызовы "
+"(такие как B<poll>(2)), которые не перезапускаются по сигналу, будут "
+"перезапущены после подавления сигнала; однако, в ядре существуют дефекты, из-"
+"за которых некоторые системные вызовы завершаются с ошибкой B<EINTR>, даже "
+"если наблюдаемый сигнал не был внедрён в трассируемую нить."
+
+#. 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 ""
+"Перезапускающие действия ptrace, выдаваемые в ptrace-stops, отличные от "
+"signal-delivery-stop, не гарантируют внедрения сигнала, даже если значение "
+"I<sig> не равно нулю. Об ошибках не сообщается; ненулевое значение I<sig> "
+"может быть просто проигнорировано. Пользователи ptrace не должны пытаться "
+"«создать новый сигнал» таким способом — используйте вместо этого "
+"B<tgkill>(2)."
+
+#. 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 ""
+"Тот факт, что запросы внедрения сигнала могут игнорироваться при перезапуске "
+"трассируемой нити после остановок ptrace не из signal-delivery-stops, "
+"вызывает путаницу у пользователей ptrace. Типичный сценарий: трассировщик "
+"обнаруживает group-stop, принимает его за signal-delivery-stop, "
+"перезапускает трассируемую нить с помощью"
+
+#. 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_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 ""
+"пытаясь внедрить I<stopsig>, но I<stopsig> игнорируется и трассируемая нить "
+"продолжает выполняться."
+
+#. 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 ""
+"Сигнал B<SIGCONT> имеет побочный эффект — пробуждает (все нити) процесс, "
+"находящийся в group-stop. Это случается перед signal-delivery-stop. "
+"Трассировщик не может повлиять на это побочное действие (он может только "
+"подавить внедрение сигнала, что приводит к тому, что обработчик B<SIGCONT> "
+"не будет выполнен в трассируемой нити, если он установлен). Фактически, "
+"пробуждение из group-stop может следовать после signal-delivery-stop для "
+"сигнала(ов) I<отличных от> B<SIGCONT>, если они ожидают момента доставки "
+"B<SIGCONT>. Другими словами, B<SIGCONT> может быть не первым сигналом, "
+"который обнаруживает трассируемую нить после её посылки."
+
+#. 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 ""
+"Останавливающие сигналы заставляют процесс (все его нити) войти в group-"
+"stop. Данный побочный эффект возникает после внедрения сигнала, и поэтому "
+"может быть отменён трассировщиком."
+
+#. 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 ""
+"В Linux 2.4 и более ранних версиях, сигнал B<SIGSTOP> не может быть внедрён."
+
+#. 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 ""
+"Действие B<PTRACE_GETSIGINFO> может использоваться для получения структуры "
+"I<siginfo_t>, которая соответствует доставленному сигналу. Для её изменения "
+"можно использовать B<PTRACE_SETSIGINFO>. Если B<PTRACE_SETSIGINFO> "
+"использовалась для изменения I<siginfo_t>, то поле I<si_signo> и параметр "
+"I<sig> в перезапускающем действии должны совпадать, иначе результат "
+"непредсказуем."
+
+#. 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 "Group-stop"
+
+#. 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 ""
+"Когда (возможно многонитевой) процесс получает останавливающий сигнал, все "
+"нити останавливаются. Если для какой-то нити выполняется трассировка, то она "
+"входит в режим group-stop. Заметим, что останавливающий сигнал сначала "
+"приведёт к signal-delivery-stop (только в одной трассируемой нити) и только "
+"затем будет внедрён трассировщиком (или после того, как будет отправлен "
+"нити, над которой не выполняется трассировка), будет начат group-stop в "
+"I<всех> трассируемых нитях многонитевого процесса. Как обычно, каждая "
+"трассируемая нить сообщает о group-stop соответствующему трассировщику."
+
+#. 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 ""
+"Group-stop обнаруживается трассировщиком с помощью B<waitpid>(2), который "
+"возвращается с истинным значением I<WIFSTOPPED(status)> и останавливающим "
+"сигналом из I<WSTOPSIG(status)>. Тот же результат возвращается другими "
+"классами ptrace-stops, поэтому рекомендуется выполнять вызов"
+
+#. 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_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 ""
+"Вызова можно избежать, если сигнал не равен B<SIGSTOP>, B<SIGTSTP>, "
+"B<SIGTTIN> или B<SIGTTOU>; только эти четыре сигнала являются "
+"останавливающими. Если трассировщик видит что-то другое, то это не может "
+"быть group-stop. В противном случае, трассировщику нужно вызвать "
+"B<PTRACE_GETSIGINFO>. Если B<PTRACE_GETSIGINFO> завершается с ошибкой "
+"B<EINVAL>, то это определённо group-stop (возможны другие коды ошибок, "
+"например, B<ESRCH> («нет такого процесса»), если трассируемая нить "
+"уничтожена по B<SIGKILL>)."
+
+#. 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 ""
+"Если подключение к трассируемому было сделано с помощью B<PTRACE_SEIZE>, то "
+"group-stop указывается B<PTRACE_EVENT_STOP>: I<statusE<gt>E<gt>16 == "
+"PTRACE_EVENT_STOP>. Это позволяет обнаружить group-stop без дополнительного "
+"вызова B<PTRACE_GETSIGINFO>."
+
+#. 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 ""
+"Начиная с Linux 2.6.38, после того как трассировщик увидит ptrace-stop "
+"трассируемой нити и пока он не перезапустит или завершит её, трассируемая "
+"нить не будет выполняться, и не будет посылать уведомления (за исключением "
+"уничтожения по B<SIGKILL>) трассировщику, даже если трассировщик войдёт в "
+"другой вызов B<waitpid>(2)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| 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\\(emthe 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."
+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 ""
+"Поведение ядра, описанное в предыдущем параграфе, вызывает проблемы с "
+"прозрачностью обработки останавливающих сигналов. Если трассировщик "
+"перезапускает трассируемую нить после group-stop, то останавливающий сигнал "
+"просто игнорируется — трассируемая нить продолжает выполняться. Если "
+"трассировщик не перезапускает трассируемую нить перед входом в следующий "
+"B<waitpid>(2), то о будущих сигналах B<SIGCONT> не будет сообщено "
+"трассировщику; это привело бы к тому, что сигналы B<SIGCONT> не повлияли бы "
+"на трассируемую нить."
+
+#. 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 ""
+"Начиная с Linux 3.4, появился способ преодоления этой проблемы: вместо "
+"B<PTRACE_CONT> для перезапуска трассируемой нити можно использовать "
+"B<PTRACE_LISTEN>, при которой она не выполняется, а ждёт нового события, и "
+"это можно прочитать с помощью B<waitpid>(2) (например, когда был перезапуск "
+"по B<SIGCONT>)."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "PTRACE_EVENT stops"
+msgstr "Остановки PTRACE_EVENT"
+
+#. 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 ""
+"Если трассировщик устанавливает флаги B<PTRACE_O_TRACE_*>, то трассируемая "
+"нить будет входить в ptrace-stop-ы, называемые остановками B<PTRACE_EVENT>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| 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>. An additional bit is set in the higher byte of the status "
+#| "word: the value I<statusE<gt>E<gt>8> will be"
+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 ""
+"Остановки B<PTRACE_EVENT> обнаруживаются трассировщиком когда B<waitpid>(2) "
+"возвращается с I<WIFSTOPPED(status)> и I<WSTOPSIG(status)> возвращает "
+"B<SIGTRAP>. В старшем байте слова состояния устанавливается дополнительный "
+"бит: значение I<statusE<gt>E<gt>8> будет равно"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+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 ""
+"Остановка перед возвратом из B<vfork>(2) или B<clone>(2) с флагом "
+"B<CLONE_VFORK>. Когда трассируемая нить продолжает выполняться после этой "
+"остановки, она будет ждать выхода/exec потомка перед продолжением своего "
+"исполнения (другими словами, обычное поведение при B<vfork>(2))."
+
+#. 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 ""
+"Остановка перед возвратом из B<fork>(2) или B<clone>(2) с установленным "
+"сигналом выхода B<SIGCHLD>."
+
+#. 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 "Остановка перед возвратом из B<clone>(2)."
+
+#. 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 ""
+"Остановка перед возвратом из B<vfork>(2) или B<clone>(2) с установленным "
+"флагом B<CLONE_VFORK>, но после того, как потомок разблокирует эту "
+"трассируемую нить, завершив работу или выполнив exec."
+
+#. 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 ""
+"Для всех четырёх остановок, описанных выше, остановка происходит в родителе "
+"(т. е., трассируемой нити), а не в только что созданной нити. Для получения "
+"ID новой нити может использовать B<PTRACE_GETEVENTMSG>."
+
+#. 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 ""
+"Остановка перед возвратом из B<execve>(2). Начиная с Linux 3.0, "
+"B<PTRACE_GETEVENTMSG> возвращает ID бывшей нити."
+
+#. 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 ""
+"Остановка перед выходом (включая уничтожение из B<exit_group>(2)), "
+"уничтожение от сигнала или выход, вызванный B<execve>(2) в многонитевом "
+"процессе. B<PTRACE_GETEVENTMSG> возвращает код выхода. Можно прочитать "
+"значения регистров (в отличие от случая, когда происходит «реальный» выход). "
+"Трассируемая нить всё ещё существует; для завершения выхода должно быть "
+"выполнено отсоединение с помощью B<PTRACE_CONT> или B<PTRACE_DETACH>."
+
+#. 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 ""
+"Остановка вызвана командой B<PTRACE_INTERRUPT>, или group-stop, или "
+"начальным ptrace-stop при присоединении к новому потомку (только если для "
+"присоединения использовалась B<PTRACE_SEIZE>)."
+
+#. 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 ""
+"Остановка вызвана правилом B<seccomp>(2) из-за элемента syscall "
+"трассируемого, когда B<PTRACE_O_TRACESECCOMP> была установлена "
+"трассировщиком. Данные сообщения события seccomp (из части "
+"B<SECCOMP_RET_DATA> фильтрующего правила seccomp) можно получить с помощью "
+"B<PTRACE_GETEVENTMSG>. Семантика данного останова подробно описана в "
+"отдельном разделе далее."
+
+#. 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 ""
+"B<PTRACE_GETSIGINFO> при остановке B<PTRACE_EVENT> возвращает B<SIGTRAP> в "
+"I<si_signo>, а значение I<si_code> устанавливается в I<(eventE<lt>E<lt>8)\\ |"
+"\\ SIGTRAP>."
+
+#. 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 "Syscall-stop"
+
+#. 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 ""
+"Если трассируемый был перезапущен по B<PTRACE_SYSCALL> или B<PTRACE_SYSEMU>, "
+"то он входит в режим syscall-enter-stop сразу перед тем как войти в какой-"
+"либо системный вызов (который не будет выполняться, если перезапуск был из-"
+"за B<PTRACE_SYSEMU>, независимо от каких-либо изменений в регистрах на этот "
+"момент или если трассируемый перезапускается после своей остановки). Неважно "
+"какой метод вызвал syscall-entry-stop, если трассировщик перезапускает "
+"трассируемого с помощью B<PTRACE_SYSCALL>, то трассируемый входит в syscall-"
+"exit-stop при окончании системного вызова, или если он прерывается сигналом "
+"(то есть, signal-delivery-stop никогда не возникает между syscall-enter-stop "
+"и syscall-exit-stop; он возникает I<после> syscall-exit-stop). Если "
+"трассируемый продолжает выполнение с помощью какого-то другого метода "
+"(включая B<PTRACE_SYSEMU>), то syscall-exit-stop не возникает. Заметим, что "
+"все упоминания B<PTRACE_SYSEMU> применяются и к B<PTRACE_SYSEMU_SINGLESTEP>."
+
+#. 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 ""
+"Однако даже если трассируемый продолжил выполнение с помощью "
+"B<PTRACE_SYSCALL>, это не гарантирует, что следующая остановка будет syscall-"
+"exit-stop. Также, трассируемый может остановиться в остановке "
+"B<PTRACE_EVENT> (включая остановку seccomp), при выходе (если он вошёл в "
+"B<_exit>(2) или B<exit_group>(2)), уничтожении по сигналу B<SIGKILL>, или "
+"тихом уничтожении (если он является лидером группы нитей, возникает "
+"B<execve>(2) в другой нити, и эта нить не трассируется тем же "
+"трассировщиком; эта ситуация описана далее)."
+
+#. 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 ""
+"Syscall-enter-stop и syscall-exit-stop обнаруживаются трассировщиком из "
+"B<waitpid>(2), возвращающем истинное значение I<WIFSTOPPED(status)> и "
+"I<WSTOPSIG(status)> выдающем B<SIGTRAP>. Если трассировщиком был установлен "
+"флаг B<PTRACE_O_TRACESYSGOOD>, то I<WSTOPSIG(status)> выдаст значение "
+"I<(SIGTRAP\\ |\\ 0x80)>."
+
+#. 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 ""
+"Syscall-stop можно отличить от signal-delivery-stop по B<SIGTRAP>, запросив "
+"B<PTRACE_GETSIGINFO> в следующих случаях:"
+
+#. 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 ""
+"B<SIGTRAP> был доставлен в результате действия из пространства пользователя, "
+"например, системного вызова (B<tgkill>(2), B<kill>(2), B<sigqueue>(3) и т. "
+"д.), истечении таймера POSIX, изменении состояния очереди сообщений POSIX "
+"или выполнении асинхронного запроса ввода/вывода."
+
+#. 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 "B<SIGTRAP> был послан ядром."
+
+#. 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 или 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 "Это syscall-stop."
+
+#. 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 ""
+"Однако, syscall-stop происходят очень часто (дважды за системный вызов), и "
+"выполнение B<PTRACE_GETSIGINFO> для каждого syscall-stop может быть отчасти "
+"накладно."
+
+#. 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 ""
+"Некоторые архитектуры позволяют отличать эти случаи по значениям регистров. "
+"Например, на x86, при syscall-enter-stop I<rax> == -B<ENOSYS>. Так как "
+"B<SIGTRAP> (как и любой сигнал) всегда возникает I<после> syscall-exit-stop, "
+"и в этот момент I<rax> почти никогда не содержит B<ENOSYS>, B<SIGTRAP> "
+"выглядит как «syscall-stop, который не syscall-enter-stop»; другими словами, "
+"это выглядит как «блуждающий syscall-exit-stop» и таким способом может быть "
+"обнаружен. Но определение этим способом очень ненадёжно и лучше его не "
+"использовать."
+
+#. 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 ""
+"Использование флага B<PTRACE_O_TRACESYSGOOD> — рекомендуемый метод "
+"различения syscall-stop от похожих на них других ptrace-stop, так как это "
+"надёжно и не приводит к ухудшению производительности."
+
+#. 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 ""
+"Syscall-enter-stop и syscall-exit-stop неотличимы друг от друга "
+"трассировщиком. Трассировщику требуется отслеживать последовательность "
+"ptrace-stop, чтобы правильно истолковать syscall-enter-stop как syscall-exit-"
+"stop или наоборот. В общем, за syscall-enter-stop всегда следует syscall-"
+"exit-stop, B<PTRACE_EVENT> остановка или уничтожение трассируемого; никаких "
+"других ptrace-stop не может возникнуть между ними. Однако заметим, что "
+"остановки seccomp (смотрите ниже) могут приводить к syscall-exit-stop без "
+"предварительного syscall-entry-stop. Если используется seccomp, необходима "
+"осторожность чтобы не посчитать такие остановки за syscall-entry-stop."
+
+#. 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 ""
+"Если после syscall-enter-stop трассировщик использует перезапускающее "
+"действие, отличное от B<PTRACE_SYSCALL>, то syscall-exit-stop не "
+"генерируется."
+
+#. 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 ""
+"B<PTRACE_GETSIGINFO> при syscall-stop возвращает B<SIGTRAP> в I<si_signo>, "
+"значение I<si_code> устанавливается в B<SIGTRAP> или I<(SIGTRAP|0x80)>."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid "PTRACE_EVENT_SECCOMP stops (Linux 3.5 to 4.7)"
+msgid "PTRACE_EVENT_SECCOMP stops (Linux 3.5 to Linux 4.7)"
+msgstr "Остановки PTRACE_EVENT_SECCOMP (Linux 3.5 по 4.7)"
+
+#. 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 ""
+"Поведение остановок B<PTRACE_EVENT_SECCOMP> и их взаимодействие с другими "
+"видами остановок ptrace различается от версии к версии. Здесь описано "
+"поведение от их появления до Linux 4.7 (включительно). Поведение в более "
+"новых версиях описано в следующем разделе."
+
+#. 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 ""
+"Остановка B<PTRACE_EVENT_SECCOMP> возникает из-за срабатывания правила "
+"B<SECCOMP_RET_TRACE>. Она не зависит от используемых методов перезапуска "
+"системного вызова. Примечательно, что seccomp по прежнему работает даже, "
+"если трассируемый был перезапущен с помощью B<PTRACE_SYSEMU> и этот "
+"системный вызов безоговорочно пропускается."
+
+#. 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 ""
+"Перезапуск из этой остановки будет вести себя как если бы остановка возникла "
+"прямо перед рассматриваемым системным вызовом. В частности, "
+"B<PTRACE_SYSCALL> и B<PTRACE_SYSEMU> как обычно вызовут последующий syscall-"
+"entry-stop. Однако, если после B<PTRACE_EVENT_SECCOMP> номер системного "
+"вызова отрицательный, то и syscall-entry-stop и сам системный вызов будут "
+"пропущены. Это означает, что если номер системного вызова отрицательный "
+"после B<PTRACE_EVENT_SECCOMP> и трассируемый перезапущен с помощью "
+"B<PTRACE_SYSCALL>, то следующая наблюдаемая остановка будет syscall-exit-"
+"stop, а не syscall-entry-stop, как можно было ожидать."
+
+#. 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 "Остановки PTRACE_EVENT_SECCOMP (начиная с Linux 4.8)"
+
+#. 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 ""
+"Начиная с Linux 4.8, остановка B<PTRACE_EVENT_SECCOMP> была преобразована "
+"при возникновении между syscall-entry-stop и syscall-exit-stop. Заметим, что "
+"seccomp больше не выполняется (и B<PTRACE_EVENT_SECCOMP> не будет выдан), "
+"если системный вызов пропускается из-за B<PTRACE_SYSEMU>."
+
+#. 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 ""
+"Функционально, остановка B<PTRACE_EVENT_SECCOMP> работает как syscall-entry-"
+"stop (т. е., продолжение использования B<PTRACE_SYSCALL> приведёт к syscall-"
+"exit-stop, может измениться номер системного вызова и любые другие регистры, "
+"видимые выполняемому в будущем системному вызову). Заметим, что это может "
+"быть, но не обязательно предваряется syscall-entry-stop."
+
+#. 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 ""
+"После остановки B<PTRACE_EVENT_SECCOMP>, seccomp будет выполнен повторно с "
+"правилом B<SECCOMP_RET_TRACE>, которое теперь работает также как "
+"B<SECCOMP_RET_ALLOW>. Точнее говоря, это означает, что если регистры не "
+"изменились во время остановки B<PTRACE_EVENT_SECCOMP>,то после этого "
+"системный вызов будет разрешён."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "PTRACE_SINGLESTEP stops"
+msgstr "Остановки 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 "Информационные и перезапускающие действия ptrace"
+
+#. 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 ""
+"Для большинства действий ptrace (все, за исключением B<PTRACE_ATTACH>, "
+"B<PTRACE_SEIZE>, B<PTRACE_TRACEME>, B<PTRACE_INTERRUPT> и B<PTRACE_KILL>) "
+"требуется, чтобы трассируемая нить была в режиме ptrace-stop, в противном "
+"случае они завершаются с ошибкой B<ESRCH>."
+
+#. 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 ""
+"Когда трассируемая нить в ptrace-stop, трассировщик может читать и "
+"записывать данные в трассируемую нить с помощью информационных действий. Эти "
+"действия оставляют трассируемую нить в состоянии ptrace-stop:"
+
+#. 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 ""
+"Заметим, что о некоторых ошибках не сообщается. Например, установка "
+"информации о сигнале (I<siginfo>) может никак не отразиться в некоторых "
+"ptrace-stop, при этом вызов может завершиться без ошибок (возвращается 0 и "
+"значение I<errno> не устанавливается); действие B<PTRACE_GETEVENTMSG> может "
+"выполниться без ошибок и вернуть произвольное значение, если текущий ptrace-"
+"stop не описан как возвращающий какое-то осмысленное сообщение о событии."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The call"
+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_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 ""
+"затрагивает одну трассируемую нить. Текущие флаги трассируемой нити "
+"заменяются. Флаги, наследуемые новой трассируемой нитью, создаются и "
+"«автоматически присоединяются» через активные флаги B<PTRACE_O_TRACEFORK>, "
+"B<PTRACE_O_TRACEVFORK> или B<PTRACE_O_TRACECLONE>."
+
+#. 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 ""
+"Другая группа действий заставляет трассируемую нить, находящуюся в ptrace-"
+"stop, выполняться. Они могут иметь вид:"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+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 ""
+"где значение I<cmd> равно B<PTRACE_CONT>, B<PTRACE_LISTEN>, "
+"B<PTRACE_DETACH>, B<PTRACE_SYSCALL>, B<PTRACE_SINGLESTEP>, B<PTRACE_SYSEMU> "
+"или B<PTRACE_SYSEMU_SINGLESTEP>. Если трассируемая нить в signal-delivery-"
+"stop, то в I<sig> указывается сигнал, который будет внедрён (если не равен "
+"нулю). В противном случае, I<sig> может игнорироваться (при перезапуске "
+"трассируемой нити из ptrace-stop в отличный от signal-delivery-stop, "
+"рекомендуется передавать в I<sig> значение 0)."
+
+#. 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
+#, no-wrap
+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 "или"
+
+#. 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_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 ""
+"B<PTRACE_ATTACH> посылает в нить B<SIGSTOP>. Если трассировщик хочет "
+"отменить действие B<SIGSTOP>, ему нужно его подавить. Заметим, что если при "
+"присоединении в эту нить в тоже время посылаются другие сигналы, то "
+"трассировщик может увидеть, что трассируемая нить сначала вошла в signal-"
+"delivery-stop из этих сигналов! Обычной практикой является повторное "
+"внедрение этих сигналов до тех пор, пока не будет обнаружен B<SIGSTOP>, а "
+"затем подавление внедрения B<SIGSTOP>. Здесь есть ошибка в проектировании в "
+"том, что присоединение ptrace и одновременно доставляемый B<SIGSTOP> могут "
+"состязаться и одновременный B<SIGSTOP> может быть утерян."
+
+#. 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 ""
+"Так как при присоединении посылается B<SIGSTOP> и трассировщик обычно "
+"подавляет его, то это может привести к блуждающему возврату B<EINTR> из в "
+"данный момент выполняемого системного вызова в трассируемой нити, как "
+"описано в разделе «Внедрение и отмена сигнала»."
+
+#. 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 ""
+"Начиная с Linux 3.4, вместо B<PTRACE_ATTACH> можно использовать "
+"B<PTRACE_SEIZE>. B<PTRACE_SEIZE> не останавливает присоединённый. Если вам "
+"нужно остановить его после присоединения (или в любое другое время) без "
+"отправки каких-либо, используйте действие B<PTRACE_INTERRUPT>."
+
+#. 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
+#, no-wrap
+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 ""
+"включает трассировку вызвавшей нити. Нить продолжает выполняться (не входит "
+"в ptrace-stop). Обычно, за B<PTRACE_TRACEME> следует"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+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 ""
+"и это позволяет родителю (который теперь трассировщик) отследить signal-"
+"delivery-stop."
+
+#. 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 ""
+"Если включены флаги B<PTRACE_O_TRACEFORK>, B<PTRACE_O_TRACEVFORK> или "
+"B<PTRACE_O_TRACECLONE>, то потомок, создаваемый, соответственно, B<vfork>(2) "
+"или B<clone>(2) с флагом B<CLONE_VFORK>, B<fork>(2) или B<clone>(2) с "
+"установленным выходным сигналом равным B<SIGCHLD>, и другими видами "
+"B<clone>(2), автоматически присоединяется к тому же трассировщику, которой "
+"трассирует их родителя. Сигнал B<SIGSTOP> доставляется потомку, заставляя "
+"его войти в signal-delivery-stop после завершения системного вызова, который "
+"его создал."
+
+#. 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
+#, no-wrap
+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 ""
+"B<PTRACE_DETACH> является перезапускающей операцией, поэтому она требует, "
+"чтобы трассируемая нить была в ptrace-stop. Если трассируемая нить в signal-"
+"delivery-stop, то может быть внедрён сигнал. В противном случае параметр "
+"I<sig> может быть проигнорирован."
+
+#. 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
+#, fuzzy
+#| 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\\(emnot even B<SIGSTOP>."
+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 ""
+"Если трассировщик хочет отсоединиться,а трассируемая нить выполняется, то "
+"решением является посылка сигнала B<SIGSTOP> (с помощью B<tgkill>(2), чтобы "
+"точно достичь текущей нити), ожидание пока трассируемая нить не войдёт в "
+"signal-delivery-stop для доставки B<SIGSTOP> и затем отсоединение от неё "
+"(подавив внедрение B<SIGSTOP>). Ошибкой проектирования является возможность "
+"гонок с параллельно отправленными B<SIGSTOP>. Другая трудность в том, что "
+"трассируемая нить может войти в другой ptrace-stop и потребуется его "
+"перезапуск и повторное ожидание появления B<SIGSTOP>. Ещё одной сложностью "
+"является в проверки, что трассируемая нить уже не в ptrace-stop, так как в "
+"этом случае доставки сигнала не происходит — даже B<SIGSTOP>."
+
+#. 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 ""
+"Если трассировщик завершает работу, то все трассируемые нити автоматически "
+"отсоединяются и перезапускаются, если они не в group-stop. Выполнение "
+"перезапуска из group-stop в настоящее время содержит ошибки, но «плановым» "
+"поведением считается оставить трассируемую нить остановленной и подождать "
+"B<SIGCONT>. Если трассируемая нить перезапускается из signal-delivery-stop, "
+"то внедряется ожидающий сигнал."
+
+#. 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 "Выполнение execve(2) во время ptrace"
+
+#. 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 ""
+"Когда одна нить многонитевого процесса вызывает B<execve>(2), то ядро "
+"уничтожает все остальные нити процесса и сбрасывает ID выполняющейся нити в "
+"значение ID группы нитей (ID процесса. Или, говоря иначе, когда многонитевой "
+"процесс выполняет B<execve>(2), то по завершению вызова это выглядит как "
+"если бы B<execve>(2) произошёл в лидере группе нитей, независимо от того, "
+"какая нить вызвала B<execve>(2)). Такой сброс ID нити запутывает "
+"трассировщиков:"
+
+#. 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 ""
+"Все остальные нити останавливаются в останове B<PTRACE_EVENT_EXIT>, если "
+"включён флаг B<PTRACE_O_TRACEEXIT>. Затем все остальные нити, за исключением "
+"лидера группы нитей, сообщают о завершении, как если бы они кончили работу с "
+"помощью B<_exit>(2) с кодом выхода 0."
+
+#. 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 ""
+"У исполняемой трассируемой нити изменяется ID, так как она выполняет "
+"B<execve>(2) (помните, что в ptrace «pid», возвращаемый из B<waitpid>(2) или "
+"подаваемый в вызовы ptrace, это ID трассируемой нити). То есть ID "
+"трассируемой нити сбрасывается в значение ID своего процесса, который равен "
+"ID лидера группы нитей."
+
+#. 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 ""
+"Затем происходит остановка B<PTRACE_EVENT_EXEC>, если включён флаг "
+"B<PTRACE_O_TRACEEXEC>."
+
+#. 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 ""
+"Если в это время лидер группы нитей сообщил о своей остановке "
+"B<PTRACE_EVENT_EXIT> в это время, то трассировщику кажется, что "
+"завершившийся лидер группы «возник из ниоткуда» (замечание: лидер группы "
+"нитей не сообщает о завершении через I<WIFEXITED(status)> до тех пор, пока "
+"есть одна работающая нить. Это не даёт возможности трассировщику увидеть его "
+"завершение и повторное появление). Если лидер группы нитей всё ещё "
+"выполнялся, то для трассировщика может казаться, что лидер группы нитей "
+"вернулся из другого системного вызова в который входил, или даже «вернулся "
+"из системного вызова, хотя не был ни в каком системном вызове». Если лидер "
+"группы нитей не трассируется (или трассируется другим трассировщиком), то во "
+"время B<execve>(2) он выглядит так, как если бы стал трассируемым "
+"трассировщиком выполняющейся трассируемой нити."
+
+#. 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 ""
+"Все перечисленные выше эффекты происходят из-за смены ID трассируемой нити."
+
+#. 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 ""
+"В этой ситуации рекомендуется использовать флаг B<PTRACE_O_TRACEEXEC>. Во-"
+"первых, он включает остановку B<PTRACE_EVENT_EXEC>, которая происходит перед "
+"возвратом из B<execve>(2). В этой остановке трассировщик может использовать "
+"B<PTRACE_GETEVENTMSG> для получения предыдущего ID трассируемой нити (эта "
+"возможность появилась в Linux 3.0). Во-вторых, флаг B<PTRACE_O_TRACEEXEC> "
+"отключает устаревшую генерацию B<SIGTRAP> при B<execve>(2)."
+
+#. 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 ""
+"Когда трассировщик получает уведомление об остановке B<PTRACE_EVENT_EXEC>, "
+"гарантируется, что за исключением этой трассируемой нити и лидера группы "
+"нитей, больше живых нитей в этом процессе нет."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| 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\\(emone which "
+#| "describes the single still running tracee, with"
+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 ""
+"По получению уведомления об остановке B<PTRACE_EVENT_EXEC> трассировщик "
+"должен очистить все свои внутренние структуры данных, описывающие нити этого "
+"процесса, и оставить только одну структуру данных, которая описывает одну "
+"ещё выполняющуюся трассируемую нить, у которой"
+
+#. 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 "thread ID == thread group ID == process ID.\n"
+
+#. 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 "Пример: две нити вызывают B<execve>(2) одновременно:"
+
+#. 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 ""
+"*** мы получаем syscall-enter-stop в нити 1: **\n"
+"PID1 execve(\"/bin/foo\", \"foo\" E<lt>unfinished ...E<gt>\n"
+"*** мы выдаём PTRACE_SYSCALL для нити 1 **\n"
+"*** мы получаем syscall-enter-stop в нити 2: **\n"
+"PID2 execve(\"/bin/bar\", \"bar\" E<lt>unfinished ...E<gt>\n"
+"*** мы выдаём PTRACE_SYSCALL для нити 2 **\n"
+"*** мы получаем PTRACE_EVENT_EXEC for PID0, мы выдаём PTRACE_SYSCALL **\n"
+"*** мы получаем syscall-exit-stop для PID0: **\n"
+"PID0 E<lt>... execve resumedE<gt> ) = 0\n"
+
+#. 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 ""
+"Если флаг B<PTRACE_O_TRACEEXEC> I<не> действует на выполняющуюся "
+"трассируемую нить и если трассируемая нить подключена с помощью "
+"B<PTRACE_ATTACH>, а не B<PTRACE_SEIZE>, то ядро доставляет ей дополнительный "
+"B<SIGTRAP> после возврата из B<execve>(2). Это обычный сигнал (похожий на "
+"тот, который генерируется с помощью I<kill -TRAP>), а не какая-то "
+"специальная разновидность ptrace-stop. Выдача B<PTRACE_GETSIGINFO> для этого "
+"сигнала возвращает I<si_code> равный 0 (I<SI_USER>). Этот сигнал может быть "
+"блокирован маской сигналов и поэтому может быть доставлен (намного) позже."
+
+#. 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 ""
+"Обычно, трассировщик (например, B<strace>(1)) не хотел бы показывать этот "
+"дополнительный пост-execve B<SIGTRAP> сигнал пользователю, и хотел бы "
+"подавить его доставку в трассируемую нить (если обработчик B<SIGTRAP> равен "
+"B<SIG_DFL>, то это уничтожающий сигнал). Однако, определить I<какой> "
+"B<SIGTRAP> подавлять, нелегко. Рекомендуется установить флаг "
+"B<PTRACE_O_TRACEEXEC> или B<PTRACE_SEIZE> и затем подавить этот "
+"дополнительный B<SIGTRAP>."
+
+#. 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 ""
+"Программный интерфейс ptrace использует стандартный обмен сигналами UNIX "
+"между родителем и потомком через B<waitpid>(2). Это приводит к тому, что "
+"настоящий родитель процесса перестаёт получать некоторые виды уведомлений "
+"B<waitpid>(2), когда дочерний процесс трассируется другим процессом."
+
+#. 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 ""
+"Многие из этих дефектов были исправлены, но на момент версии Linux 2.6.38 "
+"некоторые из них всё ещё существуют; смотрите ДЕФЕКТЫ далее."
+
+#. 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 "На момент версии Linux 2.6.38 работает правильно:"
+
+#. 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 ""
+"при выходе/уничтожении по сигналу об этом сначала сообщается трассировщику, "
+"а затем,когда трассировщик подтвердит результат B<waitpid>(2), настоящему "
+"родителю (настоящему родителю только когда завершается многонитевой процесс "
+"целиком). Если трассировщик и реальный родитель — один и тот же процесс, то "
+"сообщение приходит лишь однажды."
+
+#. 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 "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| 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, and other requests return zero."
+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 ""
+"При успешном выполнении запросы B<PTRACE_PEEK*> возвращают запрашиваемые "
+"данные (но смотрите ЗАМЕЧАНИЯ), запрос B<PTRACE_SECCOMP_GET_FILTER> "
+"возвращает количество инструкций в программе BPF, а другие запросы "
+"возвращают ноль."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "On error, all requests return -1, and I<errno> is set appropriately. "
+#| "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."
+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 ""
+"При ошибке для всех действий возвращается -1, а переменной I<errno> "
+"присваивается номер ошибки. Так как значение, возвращаемое при удачном "
+"выполнении B<PTRACE_PEEK*>, может равняться -1, перед вызовом вызывающий "
+"должен очистить содержимое I<errno>, чтобы узнать, возникала ошибка или нет."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "ERRORS"
+msgstr "ОШИБКИ"
+
+#. 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 ""
+"(только для i386) Произошла ошибка при размещении или освобождении "
+"отладочного регистра."
+
+#. 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
+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 ""
+"Была сделана попытка чтения или записи информации в область памяти "
+"трассируемой нити или трассировщика, но, скорее всего, эта память не "
+"отображена или недоступна. К сожалению, в Linux в разных ситуациях в "
+"результате этой ошибки возвращаются значения B<EIO> или B<EFAULT>, что не "
+"всегда поддается объяснению."
+
+#. 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
+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<request>, или была попытка чтения или записи "
+"информации в неподходящую область памяти трассируемой нити или "
+"трассировщика; ошибка выравнивания слов по границе, или при запросе "
+"возобновления работы дочернего процесса был задан неверно номер сигнала."
+
+#. 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 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 (on kernels before 2.6.26) be B<init>(1) (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 ""
+"Указанный процесс не может быть трассирован. Это может произойти потому, что "
+"трассировщик не имеет прав на трассировку (требуется мандат "
+"B<CAP_SYS_PTRACE>); непривилегированные процессы не могут трассировать "
+"процессы, так как они не могут посылать сигналы, или если у них установлен "
+"set-user-ID/set-group-ID бит. Также, процесс может уже трассироваться или "
+"(на ядрах до версии 2.6.26) быть B<init>(1) (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
+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 ""
+"Указанный процесс не существует, в данный момент не трассируется вызывающим "
+"процессом, или не остановлен (для выполнения действий, которые требуют "
+"остановки трассируемой нити)."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "STANDARDS"
+msgstr "СТАНДАРТЫ"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid "None"
+msgid "None."
+msgstr "None"
+
+#. type: SH
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "HISTORY"
+msgstr "ИСТОРИЯ"
+
+#. 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 ""
+#| "In Linux kernels before 2.6.26, B<init>(1), 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 ""
+"В ядрах Linux до версии 2.6.26, процесс B<init>(1) с PID 1 не может быть "
+"трассирован."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "NOTES"
+msgstr "ЗАМЕЧАНИЯ"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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 ""
+"Хотя параметры B<ptrace>() воспринимаются согласно заданному прототипу, в "
+"настоящее время в glibc B<ptrace>() объявлена как функция с переменным "
+"числом параметров, в которой фиксирован только параметр I<request>. "
+"Рекомендуется всегда передавать четыре параметра, даже если в запрашиваемом "
+"действии они не используются (неиспользуемые аргументы указывайте как I<0L> "
+"или I<(void\\ *)\\ 0>)."
+
+#. 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 ""
+"Родитель трассируемой нити остаётся трассировщиком даже, если трассировщик "
+"вызывает B<execve>(2)."
+
+#. 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 ""
+"Структура памяти и области USER зависят от ОС и архитектуры системы. "
+"Указываемое смещение и возвращаемые данные могут не полностью "
+"соответствовать определению I<struct user>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The size of a \"word\" is determined by the operating-system variant (e.g., "
+"for 32-bit Linux it is 32 bits)."
+msgstr ""
+"Размер «слова» определяется вариантом ОС (например, для 32-битного варианта "
+"Linux слово будет 32-битным)."
+
+#. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+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 ""
+"Эта страница описывает работу системного вызова B<ptrace>() в Linux. Его "
+"работа значительно отличается от поведения в других системах UNIX. В любом "
+"случае, использование B<ptrace>() очень сильно зависит от ОС и архитектуры."
+
+#. 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 "Проверка режима доступа ptrace"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| 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)\\(emfor example, SELinux, Yama, or Smack\\(emand by the commoncap "
+#| "LSM (which is always invoked)."
+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 ""
+"Для различных частей программного интерфейса ядро — пользовательское "
+"пространство (не только операции B<ptrace>()) требуются так называемые "
+"проверки «режима доступа ptrace», чьими результатами определяется будет ли "
+"разрешена операция (или это, в некоторых случаях, заставит операцию «чтения» "
+"цензурировать возвращаемые данные). Эти проверки выполняются в случаях, "
+"когда один процесс может просмотреть конфиденциальную информацию или, в "
+"некоторых случаях, изменять состояние другого процесса. Проверки "
+"основываются на учётных данных и мандатах двух процессов, разрешено ли "
+"создание дампа «целевого» процесса, а результаты проверок выполняются любым "
+"включённым модулем безопасности Linux (LSM) — например, SELinux, Yama и "
+"Smack — и commoncap LSM (который вызывается всегда)."
+
+#. 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 ""
+"До Linux 2.6.27 все проверки доступа были одного вида. Начиная с Linux "
+"2.6.27 различают два уровня проверок доступа:"
+
+#. 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
+#, fuzzy
+#| msgid ""
+#| "For \"read\" operations or other operations that are less dangerous, such "
+#| "as: B<get_robust_list>(2); B<kcmp>(2); reading I</proc/[pid]/auxv>, I</"
+#| "proc/[pid]/environ>, or I</proc/[pid]/stat>; or B<readlink>(2) of a I</"
+#| "proc/[pid]/ns/*> file."
+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 ""
+"Для операций «чтения» или других менее опасных операций: "
+"B<get_robust_list>(2); B<kcmp>(2); чтение I</proc/[pid]/auxv>, I</proc/[pid]/"
+"environ> или I</proc/[pid]/stat>, или B<readlink>(2) для файла I</proc/[pid]/"
+"ns/*>."
+
+#. 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 ""
+"Для операций «записи» или других более опасных операций: присоединение "
+"ptrace (B<PTRACE_ATTACH>) к другому процессу или вызов "
+"B<process_vm_writev>(2) (B<PTRACE_MODE_ATTACH> было эффективным значением по "
+"умолчанию до Linux 2.6.27)."
+
+#. 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 ""
+"Начиная с Linux 4.5 приведённые выше проверки режима доступа объединяются "
+"(ИЛИ) с одним из следующих модификаторов:"
+
+#. 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 ""
+"Использовать UID и GID файловой системы у вызывающего (смотрите "
+"B<credentials>(7)) или эффективные мандаты для проверок LSM."
+
+#. 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 ""
+"Использовать реальные UID и GID у вызывающего или разрешающие мандаты для "
+"проверок LSM. Это было эффективным значением по умолчанию до Linux 4.5."
+
+#. 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 "Определён как B<PTRACE_MODE_READ | PTRACE_MODE_FSCREDS>."
+
+#. 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 "Определён как B<PTRACE_MODE_READ | PTRACE_MODE_REALCREDS>."
+
+#. 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 "Определён как B<PTRACE_MODE_ATTACH | PTRACE_MODE_FSCREDS>."
+
+#. 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 "Определён как B<PTRACE_MODE_ATTACH | PTRACE_MODE_REALCREDS>."
+
+#. 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> (начиная с 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 ""
+"Не протоколировать (audit) проверку режима доступа. Данный модификатор "
+"применяется для проверок режима доступа ptrace (например, проверки при "
+"чтении I</proc/>pidI</stat>), которые просто фильтруют или цензурируют "
+"вывод, вместо возврата ошибки вызывающему. В этих случаях, доступ к файлу не "
+"нарушает правила безопасности и нет причины генерировать запись о нарушении. "
+"Данный модификатор отключает создание подобных протокольных записей для "
+"определённых проверок доступа."
+
+#. 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 ""
+"Заметим, что все константы B<PTRACE_MODE_*>, описанные в данном разделе, "
+"доступны только для ядра и не видны из пользовательского пространства. Имена "
+"упомянутых констант служат обозначением различных видов проверок режима "
+"доступа ptrace, которые выполняются для разных системных вызовов и получении "
+"доступа к разным псевдо-файлам (например, в каталоге I</proc>). Эти имена "
+"используются в других справочных страницах как простые сокращения различных "
+"проверок ядра."
+
+#. 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 ""
+"Задействуемый алгоритм проверок режима доступа ptrace определяется по "
+"разрешению вызывающему процессу выполнять соответствующее действие над "
+"процессом назначения (в случае открытия файлов I</proc/>pid «вызывающий "
+"процесс» это открывающий файл, а процесс с соответствующим PID — «процесс "
+"назначения»). Возможные алгоритмы:"
+
+#. 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 ""
+"Если режим доступа равен B<PTRACE_MODE_FSCREDS>, то для проверки на "
+"следующем шаге используется UID и GID файловой системы у вызывающего (как "
+"упомянуто в B<credentials>(7), UID и GID файловой системы почти всегда равны "
+"значениям соответствующих эффективных идентификаторов)."
+
+#. 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 ""
+"В противном случае режим доступа равен B<PTRACE_MODE_REALCREDS>, и на "
+"следующем шаге проверок используются реальные UID и GID вызывающего "
+"(большинство программных интерфейсов, которые проверяют UID и GID "
+"вызывающего, используют эффективные идентификаторы. В проверке "
+"B<PTRACE_MODE_REALCREDS> используются реальные ID только в силу исторических "
+"причин)."
+
+#. 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 "Запрещается доступ, если срабатывает I<любое> из этих правил:"
+
+#. 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 ""
+"Реальные, эффективные и сохранённые пользовательские ID назначения совпадают "
+"с пользовательским ID вызывающего, I<и> Реальные, эффективные и сохранённые "
+"групповые ID назначения совпадают с групповым ID вызывающего."
+
+#. 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 ""
+"Вызывающий имеет мандат B<CAP_SYS_PTRACE> в пользовательском пространстве "
+"имён назначения."
+
+#. 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 ""
+"Доступ запрещается, если у процесса назначения значение атрибута "
+"«возможности дампа» не равно 1 (B<SUID_DUMP_USER>; смотрите обсуждение "
+"B<PR_SET_DUMPABLE> в B<prctl>(2)), и вызывающий не имеет мандата "
+"B<CAP_SYS_PTRACE> в пользовательском пространстве имён назначения."
+
+#. 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 ""
+"Для проверки того, что доступ ptrace разрешён, вызывается интерфейс ядра LSM "
+"I<security_ptrace_access_check>(). Результат зависит от LSM. Реализация "
+"интерфейса в commoncap LSM выполняет следующие шаги:"
+
+#. 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 ""
+"Если режим доступа включает B<PTRACE_MODE_FSCREDS>, то используется "
+"I<эффективный> набор мандатов вызывающего в последующей проверке; в "
+"противном случае (режим доступа равен B<PTRACE_MODE_REALCREDS>) используется "
+"I<допускающий> набор мандатов."
+
+#. 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 ""
+"Вызывающий и процесс назначения находятся в одном пользовательском "
+"пространстве имён, и мандаты вызывающего составляют покрывающий набор "
+"I<допускающих> мандатов процесса назначения."
+
+#. 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 ""
+"Вызывающий имеет мандат B<CAP_SYS_PTRACE> в пользовательском пространстве "
+"имён процесса назначения."
+
+#. 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 ""
+"Заметим, что commoncap LSM не различает B<PTRACE_MODE_READ> и "
+"B<PTRACE_MODE_ATTACH>."
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "(6)"
+msgstr "(6)"
+
+#. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+#. 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 "/proc/sys/kernel/yama/ptrace_scope"
+
+#. 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 ""
+"В системах с установленным модулем Yama Linux Security Module (LSM) (т. е., "
+"ядро было настроено с параметром B<CONFIG_SECURITY_YAMA>) можно использовать "
+"файл I</proc/sys/kernel/yama/ptrace_scope> (доступен, начиная с Linux 3.4) "
+"для того, чтобы огранить возможность трассировки процесса с помощью "
+"B<ptrace>() (то есть ограничить использование таких инструментов как "
+"B<strace>(1) и B<gdb>(1)). Целью ограничения является предотвращение "
+"возможности атаки, посредством которой скомпроментированный процесс "
+"подключается через ptrace к другим ответственным процессам (например, к "
+"агенту GPG или сеансу SSH), принадлежащим пользователю, чтобы получить "
+"дополнительные полномочия (которые могут существовать в памяти) и, таким "
+"образом, расширить атакуемое пространство."
+
+#. 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 "Более точно, Yama LSM ограничивает два типа операций:"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "Any operation that performs a ptrace access mode B<PTRACE_MODE_ATTACH> "
+#| "check\\(emfor example, B<ptrace>() B<PTRACE_ATTACH>. (See the \"Ptrace "
+#| "access mode checking\" discussion above.)"
+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 ""
+"Все операции, которые выполняют проверку режима доступа ptrace "
+"B<PTRACE_MODE_ATTACH>, например, B<ptrace>() B<PTRACE_ATTACH> (смотрите "
+"«Проверка режима доступа ptrace» выше)."
+
+#. 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 ""
+"Процесс, имеющий мандат B<CAP_SYS_PTRACE>, может записать в файл I</proc/sys/"
+"kernel/yama/ptrace_scope> одно из следующих значений:"
+
+#. 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 "0 («обычные права ptrace»)"
+
+#. 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 ""
+"Без дополнительных ограничений на операции, выполняющие проверки "
+"B<PTRACE_MODE_ATTACH> (кроме накладываемых commoncap и другими LSM)."
+
+#. 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 "Использование B<PTRACE_TRACEME> не изменяется."
+
+#. 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 "1 («ограниченный ptrace») [значение по умолчанию]"
+
+#. 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 ""
+"Когда выполняется операция, требующая проверки B<PTRACE_MODE_ATTACH>, "
+"вызывающий процесс должен иметь мандат B<CAP_SYS_PTRACE> в пользовательском "
+"пространстве имён процесса назначения или должен иметь предопределённые "
+"отношения с процессом назначения. По умолчанию, предопределённые отношения "
+"это когда процесс назначения должен быть потомком вызывающего."
+
+#. 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 ""
+"Процесс назначения может выполнить операцию B<prctl>(2) B<PR_SET_PTRACER> "
+"для объявления дополнительного PID, которому разрешено выполнять операции "
+"B<PTRACE_MODE_ATTACH> над процессом назначения. Подробности смотрите в файле "
+"исходного кода ядра I<Documentation/admin-guide/LSM/Yama.rst> (или "
+"I<Documentation/security/Yama.txt> до Linux 4.13)."
+
+#. 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 "2 («только администраторское присоединение»)"
+
+#. 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 ""
+"Только процессы с мандатом B<CAP_SYS_PTRACE> в пользовательском пространстве "
+"имён процесса назначения могут выполнять операции B<PTRACE_MODE_ATTACH> или "
+"трассировать потомков, выполнивших B<PTRACE_TRACEME>."
+
+#. 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 "3 («присоединение заблокировано»)"
+
+#. 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 ""
+"Никакие процессы не могут выполнять операции B<PTRACE_MODE_ATTACH> или "
+"трассировать потомков, выполнивших B<PTRACE_TRACEME>."
+
+#. 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 ""
+"Относительно значений 1 и 2 заметим, что создание нового пользовательского "
+"пространства имён фактически удаляет защиту, предлагаемую Yama. Это "
+"происходит из-за того, что процесс в родительском пользовательском "
+"пространстве имён, у которого эффективный UID совпадает с UID создателя "
+"дочернего пространства имён, имеет все мандаты (включая B<CAP_SYS_PTRACE>) "
+"при выполнении им операций внутри дочернего пользовательского пространства "
+"имён (вплоть до удаления потомков этого пространства имён). В результате, "
+"когда процесс сам пытается использовать пользовательские пространства имён "
+"для песочницы, это непреднамеренно ослабляет защиту, предлагаемую Yama LSM."
+
+#. 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 "Отличия между библиотекой 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 ""
+"На уровне системных вызовов запросы B<PTRACE_PEEKTEXT>, B<PTRACE_PEEKDATA> и "
+"B<PTRACE_PEEKUSER> имеют разный программный интерфейс: они сохраняют "
+"результат по адресу, указанному в параметре I<data>, а возвращаемое значение "
+"является индикатором ошибки. Обёрточная функция glibc предоставляет "
+"программный интерфейс, описанные ОПИСАНИЕ выше, а результат возвращается в "
+"виде возвращаемого значения функции."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "BUGS"
+msgstr "ДЕФЕКТЫ"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "On hosts with 2.6 kernel headers, B<PTRACE_SETOPTIONS> is declared with a "
+#| "different value than the one for 2.4. This leads to applications "
+#| "compiled with 2.6 kernel headers failing when run on 2.4 kernels. This "
+#| "can be worked around by redefining B<PTRACE_SETOPTIONS> to "
+#| "B<PTRACE_OLDSETOPTIONS>, if that is defined."
+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 ""
+"На машинах с заголовочными файлами ядра 2.6 значение B<PTRACE_SETOPTIONS> "
+"отличается от использованного в версии 2.4. Это приводит к тому, что "
+"приложения, скомпилированные с такими заголовочными файлами, не работают при "
+"использовании ядер 2.4. Этого можно избежать сделав B<PTRACE_SETOPTIONS> "
+"равным B<PTRACE_OLDSETOPTIONS>, если данная константа определена."
+
+#. 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 ""
+"Уведомления group-stop посылаются трассировщику, но не реальному родителю. "
+"Последнее подтверждение в версии 2.6.38.6."
+
+#. 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 ""
+"Если трассируется лидер группы нитей и завершается с помощью вызова "
+"B<_exit>(2), то происходит его останов B<PTRACE_EVENT_EXIT> (если это "
+"запрашивалось), но последующее уведомление B<WIFEXITED> не будет доставлено "
+"пока все остальные нити не завершат работу. Как объяснялось выше, если одна "
+"из остальных нитей вызывает B<execve>(2), то о завершении лидера группы "
+"I<никогда> не будет сообщено. Если исполняемая нить не трассируется этим "
+"трассировщиком, то трассировщик никогда не узнает, что происходил "
+"B<execve>(2). Одним из обходных вариантов решения в этом случае является "
+"выполнение B<PTRACE_DETACH> для лидера группы вместо перезапуска. Последнее "
+"подтверждение в версии 2.6.38.6."
+
+#. 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 ""
+"Сигнал B<SIGKILL> всё ещё может вызвать остановку B<PTRACE_EVENT_EXIT> перед "
+"настоящем завершением процесса по сигналу. Это поведение может измениться в "
+"будущем; B<SIGKILL> всегда подразумевает немедленное завершение задач даже "
+"под ptrace. Последняя подтверждённая версия Linux — 3.13."
+
+#. 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 ""
+"Некоторые системные вызовы возвращаются с B<EINTR>, если сигнал был послан "
+"трассируемой нити, но доставка была подавлена трассировщиком (это очень "
+"распространённая операция: она обычно выполняется отладчиками при каждом "
+"присоединении, чтобы не вызывать ненужный B<SIGSTOP>). Начиная с Linux "
+"3.2.9, подвержены следующие системные вызовы (вероятно, это не полный "
+"список): B<epoll_wait>(2) и B<read>(2) из файлового дескриптора "
+"B<inotify>(7). Обычный симптом этой ошибки: когда вы присоединяетесь к "
+"неактивному процессу с помощью команды"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "strace -p E<lt>process-IDE<gt>\n"
+msgstr "strace -p E<lt>process-IDE<gt>\n"
+
+#. 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 "restart_syscall(E<lt>... resuming interrupted call ...E<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 "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 ""
+"Здесь не видно, что процесс был заблокирован в B<epoll_wait>(2) до того, как "
+"B<strace>(1) присоединился к нему. Присоединение заставляет B<epoll_wait>(2) "
+"вернуться в пользовательское пространство с ошибкой B<EINTR>. В этом частном "
+"случае, программа отвечает на B<EINTR> проверкой текущего времени и затем "
+"вызывает B<epoll_wait>(2) снова (программы, которые не ожидают таких "
+"«побочных» ошибок B<EINTR>, при присоединении B<strace>(1) могут повести "
+"себя непредсказуемо)."
+
+#. 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 ""
+"В отличие от обычных правил, обёрточная функция glibc для B<ptrace>() может "
+"присваивать I<errno> значение нуля."
+
+#. 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 "СМ. ТАКЖЕ"
+
+#. 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 февраля 2023 г."
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "Linux man-pages 6.03"
+msgstr "Linux man-pages 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> (начиная с Linux 2.6.14)"
+
+#. type: TH
+#: debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "2023-03-30"
+msgstr "30 марта 2023 г."
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "Linux man-pages 6.05.01"
+msgstr "Linux man-pages 6.05.01"
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Linux man-pages 6.04"
+msgstr "Linux man-pages 6.04"