| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
Tobi1987
Anmeldungsdatum: 31.07.2007 Beiträge: 14
|
Verfasst am: 14. Sep 2007 15:49 Titel: Keine Core-Dump Datei |
|
|
hallo,
wenn ich mein c-programm compiliere einsteht ein fehler.
um den fehler genauer orten zu können muss ich den gdb mit meiner binärdatei und der *.core datei füttern.
ich kompiliere mein prog mit folgendem kommando:
| Code: | | gcc -g -o sample sample.c |
wenn ich dann meine binärdatei ausführe bekomme ich einen segmentation fault.
leider wird mir keine sample.core datei erstellt.
was mache ich falsch??
mfg |
|
| |
|
|
Janka

Anmeldungsdatum: 11.02.2006 Beiträge: 3273
|
Verfasst am: 14. Sep 2007 17:56 Titel: |
|
|
Man kann mit ulimit einige Maximalwerte für Prozesse festlegen, die von der aktuellen Shell und ihren Abkömmlingen aus gestartet werden. Vermutlich ist die Core Dump Size auf 0 gestellt.
| Code: |
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
pending signals (-i) 4095
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 400
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
$ man ulimit
...Aha!
$ ulimit -c 1000
|
Janka _________________ Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie. |
|
| |
|
|
Tobi1987
Anmeldungsdatum: 31.07.2007 Beiträge: 14
|
Verfasst am: 15. Sep 2007 13:20 Titel: |
|
|
| thx |
|
| |
|
|
hjb Pro-Linux

Anmeldungsdatum: 15.08.1999 Beiträge: 3178 Wohnort: Bruchsal
|
Verfasst am: 02. Nov 2007 18:46 Titel: |
|
|
Hi!
So langsam drehe ich durch. Ich habe in /proc/sys/kernel/core_pattern einen Namen in einem Verzeichnis eingetragen, das für einen bestimmten User schreibbar ist. ulimit -c auf z.B. 100000 oder unlimited gesetzt. Egal welches Signal ich schicke (6 oder 11 z.B.), ich bekomme keinen Coredump. Auch von anderen Programmen nicht. Was kann es denn noch für Einschränkungen geben, dass es nicht funktioniert?
Der Kernel kann Core-Dateien erzeugen, denn immerhin liefert bash einen Core: kill -11 $$ funktioniert.
Habe ich im Programm versehentlich Coredumps abgeschaltet? Ich rufe explizit setrlimit auf, um die Core-Größe auf unlimited zu setzen.
Grüße,
hjb _________________ Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt? |
|
| |
|
|
hjb Pro-Linux

Anmeldungsdatum: 15.08.1999 Beiträge: 3178 Wohnort: Bruchsal
|
Verfasst am: 14. Nov 2007 17:18 Titel: Problem gelöst |
|
|
Hi!
Es handelte sich um einen Daemon, muss ich dazu sagen. Nun ist es seit einiger Zeit so, dass Programmen, die ihre uid wechseln, das Recht zum Coredump entzogen wird. Abhilfe lässt sich mit | Code: | | echo 1 > /proc/sys/fs/suid_dumpable | schaffen.
Man kann den Wert auch programmatisch ändern, dazu gibt es die Sysctl-Variable fs.suid_dumpable (wird aber nicht empfohlen).
Grüße,
hjb _________________ Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt? |
|
| |
|
|
|
|