dr.disk Geschrieben 30. Januar 2003 Teilen Geschrieben 30. Januar 2003 Mir ist gestern folgendes unter Linux passiert: cd <irgendein bin-Verzeichnis> segmentation fault Kennt jemand dieses Phänomen? Was löst sich denn da auf? Das Dateisystem? Oder ein Defekt in der Hardware? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DanielB Geschrieben 30. Januar 2003 Teilen Geschrieben 30. Januar 2003 Segmentation faults weisen oft auf fehlerhafte Hardware hin. (i.d. R. Speicher, CPU, Board. Seg faults treten aber auch auf, wenn z.B. die CPU zu heiss wird. Besorg dir einfach mal den Quelltext von einigen, möglichst grossen Programmen und fang an alles auf einmal zu kompilieren. Wenn Du Fehlermeldungen wie z.B. cc exited with signal 11 oder Kernel Panics bekommst ist es ein Hardwareproblem und Du kannst anfangen Komponenten zu tauschen bis der Fehler nicht mehr auftritt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.disk Geschrieben 31. Januar 2003 Autor Teilen Geschrieben 31. Januar 2003 Das komische daran ist halt, daß dieser Fehler nur bei einem einzigen Verzeichnis aufgetreten ist. Naja, auf jeden Fall mal beobachten ob das öfters vorkommt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
nic_power Geschrieben 31. Januar 2003 Teilen Geschrieben 31. Januar 2003 Hallo, Ein segmentation fault tritt immer dann auf, wenn ein Programm auf einen Speicherbereich zugreift, der nicht allociert wurde. D.h. es handelt sich erstmal um ein Softwareproblem (beispielsweise eine defekte shared-library) . Ich halte es fuer keine gute Idee, bei jedem segfault gleich mit dem Austausch von Hardware zu beginnen. Der Klassiker: int i[5]; printf("%d\n", i[5]); Um welches Verzeichnis handelt es sich denn? Bzw. wie sieht der Inhalt aus, wie sind die Permissions, was fuer ein Filesystemtyp usw.? Nic Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DanielB Geschrieben 31. Januar 2003 Teilen Geschrieben 31. Januar 2003 Originally posted by nic_power Ein segmentation fault tritt immer dann auf, wenn ein Programm auf einen Speicherbereich zugreift, der nicht allociert wurde. D.h. es handelt sich erstmal um ein Softwareproblem (beispielsweise eine defekte shared-library) . Richtig, soweit zur Theorie. In der Praxis sind die segfaults, welche ich erlebt habe jedoch zu 95% auf Hardware und nicht auf Software zurückzuführen gewesen. Grade bei Standardprogrammen wie "ls" ist ein Fehler in der Software, welche die segfaults verursacht eher unwahrscheinlich. Eine defekte Library ist sicherlich möglich, würde aber sehr wahrscheinlich auch eine Menge andere Programme betreffen. Eine andere Möglichkeit, die in diesem Fall auch sehr wahrscheinlich ist, sind Probleme mit dem entsprechenden Verzeichnis bzw. Dateisystem. Originally posted by nic_power Ich halte es fuer keine gute Idee, bei jedem segfault gleich mit dem Austausch von Hardware zu beginnen. [...] Das habe ich auch nicht geschrieben Segfaults sind auch nichts alltägliches, wenn man nicht grade als Programmierer tätig ist. Glücklicherweise ist es relativ leicht und schnell zu testen, ob es ein Hardwareproblem ist, deshalb habe ich ich dieses vorgeschlagen. Es ist grade bei Problemen dieser Art hilfreicht bestimmte Dinge ausschliessen zu können. Wenn bei den Tests, wie oben beschrieben, weitere Fehler auftreten ist es mit 99%tiger Sicherheit ein Hardware Problem. Ansonsten kann, im Falle eines Problemes mit shared-libs, mit Hilfe von "ldd" gecheckt werden, welche libraries von dem entsprechenden Programm verwendet werden. Danach kann ein Austausch der entsprechenden shared-libs vorgenommen werden bis das Problem nicht mehr auftritt. Was aber weitaus wahrscheinlicher als shared-libs als Fehlerquelle in Frage kommt sind Probleme mit dem Verzeichnis selbst. Die entsprechenden Frage für weitere Fehleranalysen hat Nic ja schon gestellt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.