[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Debian]:Re: SB Live - Digitalmixer



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


Reply to: