Hallo Helge,
#. type: Plain text
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 ""
"stoppt einen verfolgten Prozess. Falls der verfolgte Prozess im
Kernel-Space "
"läuft oder schläft und B<PTRACE_SYSCALL> in Kraft ist, wird der
Systemaufruf "
"unterbrochen und Systemaufrufbeendigungsstopp gemeldet. (Der
unterbrochene "
"Systemaufruf wird beim Neustart des verfolgten Prozesses ebenfalls neu "
"gestartet.) Falls der verfolgte Prozess bereits durch ein Signal
gestoppt "
"und B<PTRACE_LISTEN> an ihn gesendet wurde, stoppt der verfolgte
Prozess mit "
"B<PTRACE_EVENT_STOP> und I<WSTOPSIG(Status)> gibt das Stoppsignal
zurück. "
"Falls zur selben Zeit irgendein anderes »ptrace-stop« erzeugt wird (zum "
"Beispiel, weil ein Signal an den verfolgten Prozess gesendet wird),
tritt "
"dieses »ptrace-stop« auf. Falls nichts von obigem zutrifft (zum
Beispiel, "
"weil der verfolgte Prozess im Userspace läuft), stoppt er mit "
"B<PTRACE_EVENT_STOP> mit I<WSTOPSIG(status)> == B<SIGTRAP>. "
"B<PTRACE_INTERRUPT> funktioniert nur bei verfolgten Prozessen, die
durch "
"B<PTRACE_SEIZE> angehängt wurden."
Hier benutzt Du »Kernel-Space« und »Userspace«. Im Netz finden sich
beide Schreibweisen, ich würde es allerdings einheitlich wählen.
#. No longer true (removed by Denys Vlasenko, 2011, who remarks:
#. "I think it isn't true in non-ancient 2.4 and in 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
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 ""
"hängt an den Prozess, der durch I<PID> angegeben wird, an, lässt ihn
zum "
"verfolgten Prozess des aufrufenden Prozesses werden. Dem verfolgten
Prozess "
"wird ein B<SIGSTOP> gesandt, er wird aber nicht notwendigerweise
durch die "
"Vollendung dieses Aufrufs gestoppt; benutzen Sie B<waitpid>(2), um
auf das "
"Stoppen des verfolgten Prozesses zu warten. Lesen Sie den
Unterabschnitt "
"»Anhängen und Loslösen«, um zusätzliche Informationen zu erhalten. "
"(I<Adresse> und I<Daten> werden ignoriert.)"
s/an, lässt/an und lässt/
#. 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
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 ""
"An den zu dem in I<pid> angegebenen Prozess anhängen, wodurch er ein "
"verfolgter Prozess des aufrufenden Prozesses wird. Anders als "
"B<PTRACE_ATTACH> beendet B<PTRACE_SEIZE> den Prozess nicht.
Gruppenstopps "
"werden als B<PTRACE_EVENT_STOP> berichtet und I<WSTOPSIG(status)>
liefert "
"das Stopp-Signal zurück. Automatisch angehängte Kinder stopppen mit "
"B<PTRACE_EVENT_STOP> und I<WSTOPSIG(status)> liefert B<SIGTRAP> zurück, "
"statt ein B<SIGSTOP> Signal geliefert zu bekommen. B<execve>(2)
liefert kein "
"zusätzliches B<SIGTRAP> aus. Nur ein Prozess, der B<PTRACE_SEIZE>
ist, kann "
"die Befehle B<PTRACE_INTERRUPT> und B<PTRACE_LISTEN> akzeptieren. Das
gerade "
"beschriebene »beschlagnahmte« (engl. »seized«) Verhalten wird von
Kindern "
"geerbt, die automatisch mittels B<PTRACE_O_TRACEFORK>, "
"B<PTRACE_O_TRACEVFORK> und B<PTRACE_O_TRACECLONE> angehängt sind.
I<addr> "
"muss Null sein. I<data> enthält eine Bitmaske, die die sofort zu "
"aktivierenden Optionen enthält."
s/An den ... anhängen/hängt an den ... an/
in den vorherigen Abschnitten ist I<pid> großgeschrieben.
s/stopppen/stoppen/
s/I<adr>/I<Adresse>/ (siehe vorherige Abschnitte), auch nachfolgend prüfen
s/I<data>/I<Daten>/ (siehe vorherige Abschnitte), auch nachfolgend prüfen
#. type: Plain text
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> ist entweder ein Zeiger auf ein Feld I<struct sock_filter>,
dass "
"groß genug ist, ein BPF-Programm zu speichern, oder NULL, falls das
Programm "
"nicht gespeichert werden soll."
s/dass/das/
#. type: Plain text
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 ""
"startet den gestoppten, verfolgten Prozess wie für B<PTRACE_CONT>,
löst ihn "
"aber zuerst vom Prozess ab. Unter Linux kann ein verfolgter Prozess auf "
"diese Art abgelöst werden, ohne Rücksicht darauf zu nehmen, welche
Methode "
"zum Starten der Verfolgung benutzt wurde.(I<Adresse> wird ignoriert.)"
Leerzeichen vor "(I<Adresse>" fehlt
#. type: Plain text
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 ""
"Der Verfolger kann nicht abschätzen, ob der von Ptrace gestoppte
Prozess "
"existiert. Es gibt mehrere Szenarien, in denen der verfolgte Prozess
sterben "
"kann, während er gestoppt ist (wie B<SIGKILL>). Daher muss der
Verfolger "
"vorbereitet werden, bei allen Ptrace-Aktionen einen B<ESRCH>-Fehler zu "
"handhaben. Leider wird der gleiche Fehler zurückgegeben, falls der
verfolgte "
"Prozess existiert, aber nicht von Ptrace gestoppt wurde (für Befehle,
die "
"einen gestoppten, verfolgten Prozess erfordern) oder falls er nicht
durch "
"den Prozess verfolgt wird, der den Ptrace-Aufruf abschickte. Der
Verfolger "
"muss den Überblick über den »laufend«-/»gestoppt«-Status des verfolgten "
"Prozesses behalten und B<ESRCH> nur dann als »verfolgter Prozess starb "
"unerwartet« interpretieren, falls er weiß, dass der verfolgte Prozess "
"beobachtet wurde, um in einen Ptrace-stopp einzutreten. Beachten Sie,
dass "
"es keine Garantie gibt, dass I<waitpid(WNOHANG)> zuverlässig den
Todesstatus "
"des verfolgten Prozesses meldet, falls eine Ptrace-Aktion B<ESRCH> "
"zurückgibt. I<waitpid(WNOHANG)> könnte stattdessen 0 zurückgeben. In
anderen "
"Worten kann es sein, dass der verfolgte Prozess »noch nicht
vollständig tot« "
"ist, aber bereits Ptrace-Anfragen ablehnt."
s/Ptrace-stopp/Ptrace-Stopp/
#. type: Plain text
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 ""
"Der Verfolger kann nicht abschätzen, ob der verfolgte Prozess
I<immer> sein "
"Leben durch melden von I<WIFEXITED(status)> oder I<WIFSIGNALED(status)> "
"aushaucht. Es gibt Fälle, in denen dies nicht geschieht. Falls ein
Thread, "
"der nicht führender Thread der Thread-Gruppe ist, zum Beispiel ein "
"B<execve>(2) ausführt, verschwindet er; seine PID wird nie wieder
gesehen "
"und alle nachfolgenden Ptrace-Stopps werden unter der PID des führenden "
"Threads der Thread-Gruppe gemeldet."
s/melden/Melden/
#. type: Plain text
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 ""
"Die Benutzung des Schalters B<WNOHANG> könnte B<waitpid>(2)
veranlassen, 0 "
"zurückzugeben (»nocht keine Warteergebnisse verfügbar«), sogar dann,
wenn "
"der Verfolger weiß, dass dort eine Benachrichtigung sein soll. Beispiel:"
s/nocht/noch/
Gruß,
Chris