Hallo Leute,
hat einer von euch eine Idee, warum strace nicht mehr funktioniert?
Es bleibt nach dem Start einfach stehen und sagt gar nichts.
Das Problem liegt irgendwie beim Öffnen von /proc/PID/mem. Das scheint
irgendwie zu blockieren. Wenn ich aber in der Funktion
strace.c:proc_open eine Ausgabe auf STDERR mache (einfach nur ein
Newline), dann klappt es:
Bleibt stehen:
if ((tcp->pfd = open(proc, O_RDWR)) < 0) { ...
Läuft weiter:
fprintf(stderr,"\n");
if ((tcp->pfd = open(proc, O_RDWR)) < 0) { ...
Keine Ahnung warum.
Lustigerweise (vermutlich aus dem gleichen Grund) geht auch folgendes:
ktrace strace perl -wle 'print "Hallo"'
Das liefert auch ein perfektes strace-Ergebnis (wodurch dann natürlich
die ktrace-Daten nicht mehr viel Wert sind).
Das /proc ist natürlich gemountet, und ich habe es unter FreeBSD
RELENG_5_2 und _5_3 versucht. Habe das jetzt für mich wie oben
beschrieben gepatched, aber das kann man ja nun nicht wirklich als
saubere Lösung als PR schicken ;-).
Ich mag die Ausgabe von strace deutlich lieber als ktrace, gibt es sonst
noch Alternativen (gerne auch portabel, damit man sich nicht immer
umgewöhnen muss)?
Gruss
Christian
-- Das niedrig gewachsene, schmalschultrige, breithüftige und kurzbeinige Geschlecht das schöne zu nennen - dies konnte nur der vom Geschlechtstrieb umnebelte männliche Intellekt fertigbringen. (Arthur Schopenhauer, dt. Philosoph, 1788-1860) To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org with "unsubscribe de-bsd-questions" in the body of the messageReceived on Fri 19 Nov 2004 - 18:24:17 CET