Ich versuche gerade einem "Segmentation Fault" auf die Spur zu kommen.
Und zwar habe ich eine Applikation dynamisch gelinkt. Am Topf scheitert es schon nach wenigen Befehlen und ich würde gerne wissen warum.
Das Topf-interne "strace" zeigt zunächst mal, das er eine Datei nicht findet:
Code: Alles auswählen
strace -f -s 60 -v mount.cifs.dyn //192.168.1.11/DataFiles /mnt/hd/ProgramFiles/bin/cifs/mnt/ -o user=root
execve("./mount.cifs.dyn", ["mount.cifs.dyn", "//192.168.1.11/DataFiles", "/mnt/hd/ProgramFiles/bin/cifs/mnt/", "-o", "user=root"], [/* 14 vars */]) = 0
old_mmap(0, 0x14, 0x3, 0x802, 0xffffffff, 0) = 715853824
[color=Red]stat(0x2aaae844, 0x7fef59c8) = -1 ENOENT (No such file or directory) (errno 2)
[/color]open([color=Red]0x7fef5200[/color], 0, 0) = 3
...
getuid() = 0
chdir(0x7fef5ebf) = 0
getcwd("/mnt/hd/ProgramFiles/bin/cifs/mnt", 4095) = 34
--- SIGSEGV (Segmentation fault) ---
+++ killed by SIGSEGV +++
Also habe ich versucht ein aktuelleres strace zu bauen, das ich euch nicht vorenthalten will. Vielleicht kann´s ja mal jemand brauchen:
strace 4.15
Das ist schon ein deutlicher Fortschritt bei den Informationen. Man sieht, entgegen meiner Vermutung, dass die C Library doch geladen wird:
Code: Alles auswählen
# ./strace -f -s 60 -v mount.cifs.dyn //192.168.1.11/DataFiles /mnt/hd/ProgramFiles/bin/cifs/mnt/ -o user=root
execve("./mount.cifs.dyn", ["mount.cifs.dyn", "//192.168.1.11/DataFiles", "/mnt/hd/ProgramFiles/bin/cifs/mnt/", "-o", "user=root"], ["PWD=/mnt/hd/ProgramFiles/bin/cifs", "HOSTNAME=(none)", "USER=root", "MACHTYPE=mipsel-unknown-linux-gnu", "LOGNAME=root", "SHLVL=1", "SHELL=/bin/sh", "HOSTTYPE=mipsel", "OSTYPE=linux-gnu", "TERM=vt102", "HOME=/root", "PATH=.:/sbin:/usr/sbin:/bin:/usr/bin", "_=./strace", "OLDPWD=/root"]) = 0
mmap(NULL, 20, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aab1000
stat([color=RoyalBlue]"/etc/ld.so.cache"[/color], 0x7fca99c8) = -1 ENOENT (No such file or directory)
open("[color=RoyalBlue]/lib/libc.so.0[/color]", O_RDONLY) = 3
...
getuid() = 0
[color=Red]chdir("/mnt/hd/ProgramFiles/bin/cifs/mnt/") = 0
getcwd("/mnt/hd/ProgramFiles/bin/cifs/mnt", 4095) = 34[/color]
--- SIGSEGV {si_signo=SIGSEGV, si_code=[color=RoyalBlue]SEGV_MAPERR[/color], si_addr=NULL} ---
+++ killed by SIGSEGV +++
Segmentation faultCode: Alles auswählen
mountpoint = realpath(".", NULL);Oder passiert der Fehler erst danach?
Wie könnte man weiter diagnostizieren?
Zugegebenermaßen ein eher akademisches Thema
aber vielleicht kann ja jemand was beitragen.


AcadeRC Receiver Control - Multifunktions-TAP