JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=c2b6973acdf19cfafd87b20af93533d6Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

ptrace() und Threads

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Compuholic
Mini JLI'ler



Anmeldedatum: 15.10.2002
Beiträge: 25

Medaillen: Keine

BeitragVerfasst am: 24.05.2003, 22:36    Titel: ptrace() und Threads Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
magynhard
Super JLI'ler



Anmeldedatum: 26.04.2003
Beiträge: 461
Wohnort: Wild durch die Welt ;-)
Medaillen: Keine

BeitragVerfasst am: 25.05.2003, 00:01    Titel: Antworten mit Zitat

Ich kenne "nur" ein ziemlich riesiges Forum über Spiele-Entwicklung, wimni sogar das größte deutschsprachige der welt Wink

http://193.111.112.220/related/dsb/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 44
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 25.05.2003, 01:27    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Compuholic
Mini JLI'ler



Anmeldedatum: 15.10.2002
Beiträge: 25

Medaillen: Keine

BeitragVerfasst am: 25.05.2003, 12:44    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 44
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 25.05.2003, 13:23    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
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

Impressum