'Segmentation fault.'

chrissel

Woohooo!
ID: 211634
L
20 April 2006
4.489
472
Hallo,
wie es im Titel steht bekomme ich bei einem Programm immer eine Speicherzugriffsverletzung. An einer falschen Programmierung denke ich nicht, da das gleiche Programm bei vielen anderen auch läuft...
Mein RAM scheint auch okay zu sein, habe mit MemTest86 gebooted und das hat keinen Fehler gefunden.

Nun denke ich an einen Problem mit meinem Kernel oder so, habe Debian 4.0 als i486 installiert, nun aber ein Kernelupdated gemacht, einmal den neusten i486 Kernel und auch den neusten AMD64 Kernel (benutze in dem PC einen Athlon 64).
Leider gibt es aber bei beiden Kerneln das gleiche Problem.

Hier mal ein kleiner GDB Auszug:
Code:
GNU gdb 6.7.1-debian
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
Using host libthread_db library "/lib/i686/cmov/libthread_db.so.1".

warning: Can't read pathname for load map: Input/output error.
Reading symbols from /usr/lib/libmysqlclient.so.15...done.
Loaded symbols for /usr/lib/libmysqlclient.so.15
Reading symbols from /usr/lib/i686/cmov/libssl.so.0.9.8...done.
Loaded symbols for /usr/lib/i686/cmov/libssl.so.0.9.8
Reading symbols from /usr/lib/libz.so.1...done.
Loaded symbols for /usr/lib/libz.so.1
Reading symbols from /lib/i686/cmov/libpthread.so.0...done.
Loaded symbols for /lib/i686/cmov/libpthread.so.0
Reading symbols from /usr/lib/libstdc++.so.6...done.
Loaded symbols for /usr/lib/libstdc++.so.6
Reading symbols from /lib/i686/cmov/libm.so.6...done.
Loaded symbols for /lib/i686/cmov/libm.so.6
Reading symbols from /lib/libgcc_s.so.1...done.
Loaded symbols for /lib/libgcc_s.so.1
Reading symbols from /lib/i686/cmov/libc.so.6...done.
Loaded symbols for /lib/i686/cmov/libc.so.6
Reading symbols from /usr/lib/i686/cmov/libcrypto.so.0.9.8...done.
Loaded symbols for /usr/lib/i686/cmov/libcrypto.so.0.9.8
Reading symbols from /lib/i686/cmov/libdl.so.2...done.
Loaded symbols for /lib/i686/cmov/libdl.so.2
Reading symbols from /lib/i686/cmov/libcrypt.so.1...done.
Loaded symbols for /lib/i686/cmov/libcrypt.so.1
Reading symbols from /lib/i686/cmov/libnsl.so.1...done.
Loaded symbols for /lib/i686/cmov/libnsl.so.1
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /lib/i686/cmov/libnss_files.so.2...done.
Loaded symbols for /lib/i686/cmov/libnss_files.so.2

warning: Lowest section in system-supplied DSO at 0xffffe000 is .hash at ffffe0b4
Program terminated with signal 11, Segmentation fault.

So wie es für mich aussieht werden i686 Daten geladen, aber dann bricht er ab, denke weil ich ja einen anderen Kernel habe.
 
Schonmal Google gefragt? Der erste Treffer nach diesem Thread
führt zu folgender Aussage:

Daniel Jacobowitz schrieb:
You're using a 32-bit installation with a 64-bit kernel, right?

GDB doesn't work in this configuration. It's a kernel bug; the ptrace
32-bit emulation does not handle some operations that normal i386
ptrace handles.

Wobei es scheinbar nicht ganz unmöglich ist das zu reparieren.
Hast du schon versucht einen aktuellen Kernel selbst zu kompilieren?
Evtl. hilft auch die Suche nach "debian amd64 ptrace patch" weiter ...
 
Schonmal Google gefragt? Der erste Treffer nach diesem Thread
führt zu folgender Aussage:



Wobei es scheinbar nicht ganz unmöglich ist das zu reparieren.
Hast du schon versucht einen aktuellen Kernel selbst zu kompilieren?
Evtl. hilft auch die Suche nach "debian amd64 ptrace patch" weiter ...

Danke, hatte ich nicht gefunden.

Aber das komische, wenn ich den 486er Kernel benutze gibt es das gleiche Problem. Und an GDB wird ja wohl eher nicht das Problem liegen, ich benutze das ja nur am Ende um einen Stacktrace zu bekommen, das Programm hat eigentlich damit nichts zu tun oder? (Außer Datei für GDB generieren)