On Sat, Sep 23, 2000 at 03:09:56PM +0000, Claudio Ritzert wrote: > >> Hab mir die Sourcen für den entsprechenden Digitalen Mixer von > >> http://perso.club-internet.fr/bea_raph/ geholt, und kompiliert (ohne > >> Mesa). Wenn ich nun den Mixer aufrufen will erscheint nur > >> Segmentation fault > >Was sagt "strace <deinmixer>"? (vor allem ganz am Ende) > Ich habe die Ausgabe von strace als Datei angefügt, da ich nicht weiß ab > wo ich die Ausgabe aufschreiben soll. (Die Ausgabe sagt mir auch > überhaupt nichts, da ich nicht programmieren kann) OK, es folgt eine kleine Anleitung zum Dechiffrieren von strace-Ausgaben. :) Content-Description: filename="STRACE.TXT" > execve("/usr/local/bin/Digimix", ["Digimix"], [/* 25 vars */]) = 0 > brk(0) = 0x8050644 > open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) müssen irgendwelche Bibliothekten vorgeladen werden? Nein (die Konfigurationsdatei dazu existiert nicht, also nicht.) > open("/etc/ld.so.cache", O_RDONLY) = 4 er lädt den Cache des "ld" (library loader), der weiß wo welche Bibliotheken zu finden sind. Das obige ist alles generisch, das macht jedes Linux-Programm so. > fstat(4, {st_mode=S_IFREG|0644, st_size=11831, ...}) = 0 > old_mmap(NULL, 11831, PROT_READ, MAP_PRIVATE, 4, 0) = 0x40014000 mmap Aufrufe sind Speicheranforderungen. Wenn ein Programm kurz nach einer Speicheranforderung absaut, liegt das meistens daran, daß es den Speicher nicht bekommen hat und darauf dann falsch (oder garnicht) reagiert. Programm: "OS, ich brauche XXX kb" OS: "Du kriegst nix" (bzw. einen NULL-Pointer) Programm schreibt etwas an die vermeintliche Speicheradresse "NULL" OS: "PENG!" > close(4) = 0 > open("/usr/lib/libfltk.so.1", O_RDONLY) = 4 er lädt sich div. Bibliotheken rein. ... ... > open("/usr/X11R6/lib/libXi.so.6", O_RDONLY) = 4 > fstat(4, {st_mode=S_IFREG|0644, st_size=30260, ...}) = 0 > read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p\24\0\000"..., 4096) = 4096 > old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40402000 > old_mmap(NULL, 30560, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x40403000 > mprotect(0x4040a000, 1888, PROT_NONE) = 0 > old_mmap(0x4040a000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0x6000) = 0x4040a000 > close(4) = 0 > munmap(0x40014000, 11831) = 0 memory unmap (Speicher freigeben) > personality(PER_LINUX) = 0 Welcher UNIX Typ läuft hier? (?) > getpid() = 371 Wer bin ich? (Prozess-ID) > open("/dev/mixer", O_RDONLY) = 4 Hier versucht er das mixer-Device zu öffnen. Können andere Programme auf den Mixer zugreifen? > ioctl(4, 0xc0044d6f, 0x804e380) = 0 > brk(0) = 0x8050644 > brk(0x80506bc) = 0x80506bc > brk(0x8051000) = 0x8051000 > brk(0x8052000) = 0x8052000 > brk(0x8053000) = 0x8053000 > brk(0x8054000) = 0x8054000 > brk(0x8055000) = 0x8055000 > brk(0x8056000) = 0x8056000 > --- SIGSEGV (Segmentation fault) --- > +++ killed by SIGSEGV +++ ... und irgendwas schlägt da wohl fehl. die "brk" Anweisung ist mir nicht bekannt, mag jemand anders dazu was erläutern? -- `Man sollte dem Verantwortlichen für ILOVEYOU alles http://www.linuxfaq.de mögliche antun, aber wahrscheinlich wird bloß http://www.hitchhikers.de seine Firma zweigeteilt." -- Usenet http://www.pinguin.conetix.de
Attachment:
pgpNvQEigdchw.pgp
Description: PGP signature