Available in

(2) (2)/de (2)/es (2)/fr (2)/ja (2)/ko (2)/nl

Contents

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 Vaterprozess 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 Prozess läuft bis ein Signal auftritt. Dann stoppt er und der Vater wird benachrichtigt durch wait(2). Wenn des Prozess 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, dass das Stoppen bewirkte, ignoriert werden.

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

Dieser Prozess 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

Sendet dem Tochterprozess ein SIGKILL um ihn zu beenden.

PTRACE_SINGLESTEP

Setze das trap Flag für Einzelschrittmodus.

PTRACE_ATTACH

Hänge an den Prozess an, der durch pid spezifiziert ist.

PTRACE_DETACH

Gib einen Prozess frei, der vorher verbunden war.

BEMERKUNGEN

init, der Prozess 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).

COMMENTS

blog comments powered by Disqus