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

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



Hallo Mitübersetzer,
und angehängt Teil 6 mit der Bitte um konstruktive Kritik.

Vielen Dank & Grüße

      Helge

-- 
      Dr. Helge Kreutzmann                     debian@helgefjell.de
           Dipl.-Phys.                   http://www.helgefjell.de/debian.php
        64bit GNU powered                     gpg signed mail preferred
           Help keep free software "libre": http://www.ffii.de/
#. type: Plain text
msgid "Detaching of the tracee is performed by:"
msgstr "Loslösen des verfolgten Prozesses wird erreicht durch:"

#. type: Plain text
#, no-wrap
msgid "    ptrace(PTRACE_DETACH, pid, 0, sig);\n"
msgstr "    ptrace(PTRACE_DETACH, PID, 0, Signal);\n"

#. type: Plain text
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> ist eine Neustartaktion; daher erfordert sie, dass der "
"verfolgte Prozess in einem Ptrace-Stopp ist. Falls der verfolgte Prozess in "
"einem Signallieferstopp ist, kann ein Signal eingespeist werden. Andernfalls "
"wird der Parameter I<Signal> stillschweigend ignoriert."

#.  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
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>."
msgstr ""
"Falls der verfolgte Prozess läuft, wenn der Verfolger ihn loslösen möchte, "
"besteht die übliche Lösung darin, B<SIGSTOP> zu senden (mittels "
"B<tgkill>(2), um sicherzustellen, dass es an den korrekten Thread geht), "
"darauf zu warten, dass der verfolgte Prozess in einen Signallieferstopp für "
"B<SIGSTOP> stoppt und ihn dann loszulösen (B<SIGSTOP>-Einspeisung wird "
"unterdrückt). Ein Entwurfsfehler besteht darin, dass sich dies mit gleichzeitigen "
"B<SIGSTOP>s Ressourcenwettläufe liefern kann. Eine weitere Komplikation besteht darin, "
"dass der verfolgte Prozess in andere Ptrace-Stopps geraten kann und neu "
"gestartet werden muss und nochmals gewartet werden muss, bis B<SIGSTOP> gesehen wird. Noch "
"eine weitere Komplikation besteht darin, dass nicht sicher ist, ob der verfolgte "
"Prozess nicht bereits mit Ptrace gestoppt wurde, da keine Signallieferung "
"stattfindet, obwohl es noch nicht einmal B<SIGSTOP> ist."

#. type: Plain text
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 ""
"Falls der Verfolger stirbt, werden alle verfolgten Prozesse automatisch "
"losgelöst und neu gestartet, es sei denn, sie sind im Gruppenstopp. Die "
"Handhabung des Neustarts aus dem Gruppenstopp ist derzeit fehlerhaft, aber "
"das »wie-geplant«-Verhalten ist, den verfolgten Prozess gestoppt zu lassen "
"und auf B<SIGCONT> zu warten. Falls der verfolgte Prozess neu vom "
"Signallieferstopp gestartet wurde, wird das ausstehende Signal einspeist."

#. type: SS
#, no-wrap
msgid "execve(2) under ptrace"
msgstr "execve(2) unter 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 kernel 3.1 sources, see fs/exec.c::de_thread()
#. type: Plain text
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 ""
"Wenn ein Thread in einem Prozess mit mehreren Threads B<execve>(2) aufruft, "
"zerstört der Kernel alle anderen Threads im Prozess und setzt die Thread-"
"Kennung des ausführenden Threads auf die Gruppenkennung (Prozesskennung) "
"zurück. (Oder anders ausgedrückt, wenn ein Prozess mit mehreren Threads ein "
"B<execve>(2) bei Vervollständigung des Aufrufs ausführt, scheint es durch "
"das B<execve>(2) im führenden Thread der Prozessgruppe aufzutreten, "
"unabhängig davon, welcher Thread das B<execve>(2) aufrief.) Dieses "
"Zurücksetzen der Thread-Kennung sieht für Verfolger sehr verwirrend aus:"

#. type: IP
#, no-wrap
msgid "*"
msgstr "*"

#. type: Plain text
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 ""
"Alle anderen Threads stoppen im B<PTRACE_EVENT_EXIT>-Stopp, falls die Option "
"B<PTRACE_O_TRACEEXIT> eingeschaltet wurde. Dann melden alle anderen Threads "
"außer dem führenden Thread der Gruppe den Tod, als ob sie über B<_exit>(2) "
"mit dem Exit-Kode 0 beendet worden wären."

#. type: Plain text
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 ""
"Der ausführende, verfolgte Prozess ändert seine Thread-Kennung, während er "
"in dem B<execve>(2) ist. (Denken Sie daran, unter Ptrace ist die von "
"B<waitpid>(2) zurückgegebene oder in Ptrace-Aufrufe gespeiste »PID«, die "
"Thread-Kennung des verfolgten Prozesses.) Sprich, die Thread-Kennung des "
"verfolgten Prozesses wird zurückgesetzt, so dass sie ihrer Prozesskennung "
"entspricht, die dieselbe ist, wie die Thread-Kennung des führenden Threads "
"der Thread-Gruppe."

#. type: Plain text
msgid ""
"Then a B<PTRACE_EVENT_EXEC> stop happens, if the B<PTRACE_O_TRACEEXEC> "
"option was turned on."
msgstr ""
"Dann kommt es zu einem B<PTRACE_EVENT_EXEC>-Stopp, falls die Option "
"B<PTRACE_O_TRACEEXEC> eingeschaltet wurde."

#. type: Plain text
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 ""
"Falls der führende Thread der Gruppe seinen B<PTRACE_EVENT_EXEC>-Stopp "
"mittlerweile gemeldet hat, scheint es für den Verfolger, als ob der tote "
"führende Thread »aus dem Nichts wieder auftaucht«. (Hinweis: Der führende "
"Thread der Gruppe meldet den Tod nicht über I<WIFEXITED(status)> bis es "
"mindestens einen lebenden anderen Thread gibt. Dies eliminiert die "
"Möglichkeit, dass der Verfolger ihn sterben und dann erneut erscheinen "
"sieht.) Falls der führende Thread der Gruppe immer noch lebt, könnte dies "
"für den Verfolger so aussehen, als ob der führende Thread der Gruppe von "
"einem anderen Systemaufruf als dem beigetretenen zurückkehrt oder sogar »von "
"einem Systemaufruf zurückkehrt, obwohl er in keinem Systemaufruf war«. Falls "
"der führende Thread der Gruppe nicht verfolgt wurde (oder von einem anderen "
"Verfolger verfolgt wurde), dann wird es während B<execve>(2) so aussehen, "
"als ob er ein verfolgter Prozess des Verfolgers des ausführenden verfolgten "
"Prozesses geworden wäre."

#. type: Plain text
msgid ""
"All of the above effects are the artifacts of the thread ID change in the "
"tracee."
msgstr ""
"All die Auswirkungen oberhalb sind Artefakte des Thread-Kennungswechsels im "
"verfolgten Prozess."

#. type: Plain text
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 ""
"Die Option B<PTRACE_O_TRACEEXEC> ist das emfpohlene Werkzeug für den Umgang "
"mit dieser Situation. Zuerst aktiviert es B<PTRACE_EVENT_EXEC>-Stopp, der "
"vor der Rückkehr von B<execve>(2) auftritt. In diesem Stopp kann der "
"Verfolger B<PTRACE_GETEVENTMSG> verwenden, um die vorherige Thread-Kennung "
"des verfolgten Prozesses zu erhalten. (Diese Funktion wurde in Lunux 3.0 "
"eingeführt.) Als zweites deaktiviert die Option B<PTRACE_O_TRACEEXEC> die "
"alte B<SIGTRAP>-Erzeugung auf B<execve>(2)."

#. type: Plain text
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 ""
"Wenn der Verfolger die B<PTRACE_EVENT_EXEC>-Stoppbenachrichtigung empfängt, "
"ist garantiert, dass außer diesem verfolgten Prozess und dem führenden "
"Thread der Gruppe keine anderen Threads des Prozesses lebendig sind."

#. type: Plain text
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"
msgstr ""
"Beim Empfang der B<PTRACE_EVENT_EXEC>-Stoppbenachrichtigung sollte der "
"Verfolger all seine internen Datenstrukturen aufräumen, die Threads dieses "
"Prozesses beschreiben und nur eine Datenstruktur behalten, – eine, die den "
"einzelnen, laufenden, verfolgten Prozess beschreibt mit"

#. type: Plain text
#, no-wrap
msgid "    thread ID == thread group ID == process ID.\n"
msgstr "    Thread-Kennung == Thread-Gruppenkennung == Prozesskennung.\n"

#. type: Plain text
msgid "Example: two threads call B<execve>(2)  at the same time:"
msgstr "Beispiel: Zwei Thread rufen zur gleichen Zeit B<execve>(2) auf:"

#. type: Plain text
#, 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 ""
"*** wir bekommen einen Systemaufrufeintrittsstopp in Thread 1: **\n"
"PID1 execve(\"/bin/foo\", \"foo\" E<lt>nicht abgeschlossen …E<gt>\n"
"*** wir liefern PTRACE_SYSCALL für Thread 1 **\n"
"*** wir bekommen einen Systemaufrufeintrittsstopp in Thread 2: **\n"
"PID2 execve(\"/bin/bar\", \"bar\" E<lt>nicht abgeschlossen …E<gt>\n"
"*** wir liefern PTRACE_SYSCALL für Thread 2 **\n"
"*** wir bekommen PTRACE_EVENT_EXEC für PID0, wir liefern  PTRACE_SYSCALL **\n"
"*** wir bekommen Systemaufrufbeendigungsstopp für PID0: **\n"
"PID0 E<lt>… execve wieder aufgenommenE<gt> )             = 0\n"

#. type: Plain text
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 ""
"Falls die Option B<PTRACE_O_TRACEEXEC> für den ausführenden, verfolgten "
"Prozess I<nicht> in Kraft ist und falls der verfolgte Prozess "
"B<PTRACE_ATTACH>ed statt B<PTRACE_SEIZE>d war, sendet der Kernel ein "
"zusätzliches B<SIGTRAP> an den verfolgten Prozess, nachdem B<execve>(2) "
"zurückgekehrt ist. Dies ist ein gewöhnliches Signal (ähnlich einem, das "
"durch I<kill -TRAP> erzeugt werden kann), keine Spezialart eines Ptrace-"
"Stopps. Unter Einsatz von B<PTRACE_GETSIGINFO> für dieses Signal gibt "
"I<si_code> auf 0 gesetzt (I<SI_USER>) zurück. Dieses Signal kann durch die "
"Signalmaske blockiert sein und könnte daher (viel) später gesandt werden."

#. type: Plain text
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 ""
"Üblicherweise würde der Verfolger dem Anwender dieses zusätzliche B<SIGTRAP>-"
"Signal nach Execve nicht zeigen wollen und seinen Versand an den verfolgten "
"Prozess unterdrücken (falls B<SIGTRAP> auf B<SIGTRAP> gesetzt ist, killt es "
"das Signal). Es ist jedoch nicht einfach zu bestimmen, I<welches> B<SIGTRAP> "
"zu unterdrücken ist. Die empfohlene Herangehensweise ist, die Option "
"B<PTRACE_O_TRACEEXEC> zu setzen oder B<PTRACE_SEIZE> zu verwenden und damit "
"dieses zusätzliche B<SIGTRAP> zu unterdrücken."

#. type: SS
#, no-wrap
msgid "Real parent"
msgstr "Echter Elternprozess"

#. type: Plain text
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 ""
"Die Ptrace-Programmierschnittstelle (miss)braucht die Standard-UNIX-Eltern-/"
"Kindprozess-Signalgebung über B<waitpid>(2). Diese wird benutzt, um den "
"echten Elternprozess zum Stopp des Empfangs mehrerer Arten von B<waitpid>(2)-"
"Benachrichtigungen zu veranlassen, wenn der Kindprozess durch einen anderen "
"Prozess verfolgt wird."

#. type: Plain text
msgid ""
"Many of these bugs have been fixed, but as of Linux 2.6.38 several still "
"exist; see BUGS below."
msgstr ""
"Viele dieser Fehler wurden behoben, aber ab Linux 2.6.38 existieren etliche "
"immer noch; siehe FEHLER oberhalb."

#. type: Plain text
msgid "As of Linux 2.6.38, the following is believed to work correctly:"
msgstr ""
"Ab Linux 2.6.38 wird davon ausgegangen, dass folgendes korrekt funktioniert:"

#. type: Plain text
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 ""
"Beenden/Sterben durch Signal wird zuerst an den Verfolger gemeldet, dann, "
"wenn der Verfolger das B<waitpid>(2)-Ergebnis verbraucht, an den echten "
"Elternprozess (an den echten Elternprozess nur, wenn der ganze Prozess aus "
"mehreren Threads existiert). Falls der Verfolger und der echte Elternprozess "
"derselbe Prozess sind, wird der Bericht nur einmal gesandt."

#. type: SH
#, no-wrap
msgid "RETURN VALUE"
msgstr "RÜCKGABEWERT"

#. type: Plain text
msgid ""
"On success, the B<PTRACE_PEEK*> requests return the requested data (but see "
"NOTES), while other requests return zero."
msgstr ""
"Bei Erfolg geben die B<PTRACE_PEEK*>-Anfragen die angeforderten Daten zurück "
"(aber siehe die ANMERKUNGEN), während andere Anfragen null zurückgeben."

#. type: Plain text
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."
msgstr ""
"Bei einem Fehler geben alle Anfragen -1 zurück und I<errno> wird "
"entsprechend gesetzt. Da der Wert, der von einer erfolgreichen "
"B<PTRACE_PEEK*>-Anfrage zurückgegeben wurde, -1 sein könnte, muss der "
"Aufrufende vor dem Aufruf I<errno> leeren und es dann hinterher untersuchen, "
"um festzustellen, ob ein Fehler aufgetreten ist oder nicht."

#. type: SH
#, no-wrap
msgid "ERRORS"
msgstr "FEHLER"

#. type: TP
#, no-wrap
msgid "B<EBUSY>"
msgstr "B<EBUSY>"

#. type: Plain text
msgid ""
"(i386 only) There was an error with allocating or freeing a debug register."
msgstr ""
"(nur i386) Es ist beim Reservieren oder der Freigabe eines Debug-Registers "
"ein Fehler aufgetreten."

#. type: TP
#, no-wrap
msgid "B<EFAULT>"
msgstr "B<EFAULT>"

#. type: Plain text
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 ""
"Es gab einen Versuch in einem ungültigen Bereich im Speicher des Verfolgers "
"oder des verfolgten Prozesses zu lesen oder zu schreiben, wahrscheinlich, "
"weil der Bereich nicht abgebildet war oder kein Zugriff möglich war. "
"Unglücklicherweise geben unter Linux mehrere Variationen dieser Störung mehr "
"oder weniger willkürlich B<EIO> oder B<EFAULT> zurück."

#. type: TP
#, no-wrap
msgid "B<EINVAL>"
msgstr "B<EINVAL>"

#. type: Plain text
msgid "An attempt was made to set an invalid option."
msgstr "Es wurde versucht, eine ungültige Option zu setzen."

#. type: TP
#, no-wrap
msgid "B<EIO>"
msgstr "B<EIO>"

#. type: Plain text
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<Anfrage> ist ungültig, es wurde versucht, in einem ungültigen Bereich im "
"Speicher des Verfolgers oder des verfolgten Prozesses zu lesen oder zu "
"schreiben, es gab eine Verletzung der Ausrichtung an der »word«-Größe oder "
"es wurde während des Neustarts der Abfrage ein ungültiges Signal angegeben."

#. type: TP
#, no-wrap
msgid "B<EPERM>"
msgstr "B<EPERM>"

#. type: Plain text
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)."
msgstr ""
"Der angegebene Prozess kann nicht verfolgt werden. Dies könnte daher rühren, "
"dass der Verfolger über unzureichende Privilegien verfügt (die Capability "
"B<CAP_SYS_PTRACE> wird benötigt); unprivilegierte Prozesse können keine "
"Prozesse verfolgen, denen sie keine Signale senden können oder die SUID-/"
"SGID-Programme ausführen, was naheliegend ist. Alternativ könnte der Prozess "
"bereits verfolgt werden oder (auf Kerneln vor 2.6.26) B<init>(1) (PID 1) "
"sein."

#. type: TP
#, no-wrap
msgid "B<ESRCH>"
msgstr "B<ESRCH>"

#. type: Plain text
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 ""
"Der angegebene Prozess existiert nicht, wird derzeit nicht vom Aufrufenden "
"verfolgt oder ist nicht gestoppt (bei Anfragen, die einen gestoppten "
"verfolgten Prozess erfordern)."

#. type: SH
#, no-wrap
msgid "CONFORMING TO"
msgstr "KONFORM ZU"

#. type: Plain text
msgid "SVr4, 4.3BSD."
msgstr "SVr4, 4.3BSD."

#. type: SH
#, no-wrap
msgid "NOTES"
msgstr "ANMERKUNGEN"

#. type: Plain text
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 ""
"Obwohl Argumente für B<ptrace>() gemäß dem angegebenen Prototypen "
"interpretiert werden, deklariert Glibc derzeit B<ptrace>() als eine variable "
"Funktion mit nur dem festen I<Anfrage>-Argument. Es wird empfohlen, immer "
"vier Argumente anzugeben, sogar dann, wenn die angeforderte Aktion sie "
"nicht verwendet. Setzen Sie unbenutzte/ignorierte Argumente auf I<0L> oder "
"I<(void\\ *)\\ 0>."

#.  See commit 00cd5c37afd5f431ac186dd131705048c0a11fdb
#. type: Plain text
msgid ""
"In Linux kernels before 2.6.26, B<init>(1), the process with PID 1, may not "
"be traced."
msgstr ""
"In Linux-Kerneln vor 2.6.26 kann B<init>(1) den Prozess mit der "
"Prozessnummer 1 nicht verfolgen."

#. type: Plain text
msgid ""
"A tracees parent continues to be the tracer even if that tracer calls "
"B<execve>(2)."
msgstr ""
"Der Elternprozess des verfolgten Prozesses wird weiterhin der Verfolger "
"sein, selbst wenn der Verfolger B<execve>(2) aufruft."

#.  See http://lkml.org/lkml/2008/5/8/375
#. type: Plain text
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 ""
"Das Layout des Speicherinhalts und des BENUTZERbereichs sind ziemlich "
"Betriebsystem- und Architekturspezifisch. Der mitgelieferte Versatz und die "
"zurückgegebenen Daten passen möglicherweise nicht ganz zu der Definition von "
"I<struct user>."

#. type: Plain text
msgid ""
"The size of a \"word\" is determined by the operating-system variant (e.g., "
"for 32-bit Linux it is 32 bits)."
msgstr ""
"Die Größe eines »word« wird durch die Betriebsystemvariante festgelegt (z.B. "
"ist es für ein 32-Bit-Linux 32 Bit)."

#. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
#. type: Plain text
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 ""
"Diese Seite dokumentiert die Möglichkeit, wie der B<ptrace>()-Aufruf derzeit "
"in Linux arbeitet. Sein Verhalten unterscheidet sich auf anderen unixoiden "
"Betriebssystemen deutlich. Auf jeden Fall ist die Benutzung von B<ptrace>() "
"in hohem Grad abhängig vom Betriebssystem und der Architektur."

Attachment: signature.asc
Description: Digital signature


Reply to: