|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Compuholic Mini JLI'ler
Anmeldedatum: 15.10.2002 Beiträge: 25
Medaillen: Keine
|
Verfasst am: 24.05.2003, 21:36 Titel: ptrace() und Threads |
|
|
Ich bin momentan ziemlich ratlos, auch auf die Gefahr hin, das hier keiner helfen kann: Ich versuch gerade ein bisschen mit der ptrace() Funktion unter Linux herumzuspielen.
Ich hab ein Programm, daß einen Child Prozess erzeugt. Dieser Child Process wird vom Parent Process via ptrace debuggt. Nachdem sich die beiden Prozesse syncroniniert haben wird mit execv() ein externes Programm gestartet, dess Code nun unter der PID des Child Prozesses läuft. Dieses Programm soll also debuggt werden.
Was passiert aber, wenn dieses Programm einen weiteren Child Prozess startet. Wie bekomme ich vom Parent Process Zugriff auf den neuen Prozess. Das Problem liegt ja darin, das die PID nicht bekannt ist, sonst könnte ich mich ja ohne Probleme einfach an den Prozess dranhängen. Gibt es da irgendeine spezielle Technik mit der man so etwas realisieren kann.
Wenn niemand hier weiter weiß. Vielleicht kennt jemand ein gutes Forum für Linux-Programmierung. |
|
Nach oben |
|
|
magynhard Super JLI'ler
Anmeldedatum: 26.04.2003 Beiträge: 461 Wohnort: Wild durch die Welt ;-) Medaillen: Keine
|
Verfasst am: 24.05.2003, 23:01 Titel: |
|
|
Ich kenne "nur" ein ziemlich riesiges Forum über Spiele-Entwicklung, wimni sogar das größte deutschsprachige der welt
http://193.111.112.220/related/dsb/ |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 25.05.2003, 00:27 Titel: |
|
|
execv gibt doch meines wissens nach die pid des neuen prozesses zurück oder täusch ich mich da? _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
Compuholic Mini JLI'ler
Anmeldedatum: 15.10.2002 Beiträge: 25
Medaillen: Keine
|
Verfasst am: 25.05.2003, 11:44 Titel: |
|
|
AFE-GmdG hat Folgendes geschrieben: | execv gibt doch meines wissens nach die pid des neuen prozesses zurück oder täusch ich mich da? |
Das ist nicht mein Problem. execv überlagert den Code im aktuellen Prozess mit dem Code eines externen Programmes. Da ich aber schon vor dem execv-Aufruf mir die PID mit getpid() unter den Nagel reiße, kenne ich die PID des Child-Prozesses. Das Problem ist: Was passiert, wenn das Programm, das ich mit exec aufgerufen habe einen weiteren Child Prozess erzeugt. Und wie komme ich an die PID von diesem. |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 25.05.2003, 12:23 Titel: |
|
|
Dazu fällt mir nichts passendes ein, denn die ChildPID von einem Prozess, der nur von deinem Programm aus aufgerufen wurde hat ja im Prinzip schon überhaupt nichts mehr mit deinem Programm zu tun. Wenn das aufgerufene Programm ebenfalls von Dir ist, kannst du ja eine Routine einbauen, die die PID per CallBack-Funktion zurückgibt - wenn nicht hast du pech. Durchsuche doch mal die /proc-Verzeichnisstruktur, vielleicht hilft das ja... _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|