ptrace

PTRACE(2)                        Systemaufrufe                       PTRACE(2)



NAME
       ptrace - Prozessverfolgung

ÃBERSICHT
       #include <sys/ptrace.h>

       int ptrace(int request, int pid, int addr, int data);

BESCHREIBUNG
       Ptrace stellt einen Weg zur Verfügung, durch den ein Vaterprozeà die
       Ausführung eines Tochterprozesses kontrollieren und sein core
       überwachen und ändern kann.  Der Hauptnutzen besteht in der
       Implementation von Fehlersuche mit Unterbrechungspunkten (breakpoint
       debugging).  Ein getraceter Prozeà läuft bis ein Signal auftritt.
       Dann stoppt er und der Vater wird benachrichtigt durch wait(2).  Wenn
       des Prozeà sich in gestopptem Zustand befindet, kann sein Speicher
       gelesen und beschrieben werden.  Der Vater kann auch die Tochter
       bewegen, die Ausführung fortzusetzen; optional kann das Signal, daÃ
       das Stoppen bewirkte, ignoriert werden.

       Der Wert des Arguments request legt die genaue Aktion des Systemaufrufs
       fest:

       PTRACE_TRACEME
              Dieser Prozeà wird durch seinen Vater verfolgt.  Der Vater
              sollte erwarten die Tochter zu verfolgen.

       PTRACE_PEEKTEXT, PTRACE_PEEKDATA
              Lese Wort bei Adresse addr.

       PTRACE_PEEKUSR
              Lese Wort bei Adresse addr im USER-Bereich.

       PTRACE_POKETEXT, PTRACE_POKEDATA
              Schreibe Wort an Adresse addr.

       PTRACE_POKEUSR
              Schreibe Wort an Adresse addr im USER-Bereich.

       PTRACE_SYSCALL, PTRACE_CONT
              Fahre fort nach Signal.

       PTRACE_KILL
              Send dem Tochterprozeà ein SIGKILL um ihn zu beenden.

       PTRACE_SINGLESTEP
              Setze das trap Flag für Einzelschrittmodus.

       PTRACE_ATTACH
              Haenge an den Prozeà an, der durch pid spezifiziert ist.

       PTRACE_DETACH
              Gib einen Prozeà frei, der vorher verbunden war.

BEMERKUNGEN
       init, der Prozeà mit der Prozessnummer 1, darf diese Funktion nicht
       benutzen.

RÃCKGABEWERT
       Bei Erfolg wird Null zurückgegeben.  Im Fehlerfall wird -1
       zurückgegeben und errno entsprechend gesetzt.

FEHLER
       EPERM   Der angegebene Prozess (d.h.  init), kann nicht verfolgt werden
               oder wird bereits verfolgt.

       ESRCH   Der angegebene Prozess existiert nicht.

       EIO     Request ist nicht gültig.

KONFORM ZU
       SVID EXT, AT&T, X/OPEN, BSD 4.3

SIEHE AUCH
       gdb(1), exec(2), signal(2), wait(2).



Linux 0.99.11                   6. Oktober 1996                      PTRACE(2)