[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [RFR] man://manpages-de/man2/ptrace.2 (Teil 3)



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



Reply to: