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