LINUX.ORG.RU

дамп


0

0

почему при нажатии Ctrl+q прога убивается а сабж не создается, я читал что должен...

anonymous

звыняюсь, не ctrl+q, а при ctrl+\ по идее должен проге посылатся сигнал QUIT и прога должна рухнуть и должен записатся дамп?я что то не понимаю?
как сделать что бы если прога вылетает чтобы создавался сабж?

anonymous
()

SIGQUIT что ли? Ну так прога его запросто может перехватить.

CyberCoder
()

попробуй послать другой сигнал. Например, Ctrl+C

CyberCoder
()

> почему при нажатии Ctrl+q прога убивается а сабж не создается, я читал что должен...

никто никому ничего не должен. если core вообще никогда не создаются, то проверить ulimit -a

anonymous
()

core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 1978
virtual memory (kbytes, -v) unlimited

anonymous
()

я думаю, здесь все ясно без комменариев

anonymous
()

>я думаю, здесь все ясно без комменариев

и что тибе ясно? А?

ну устанавливаю я core file size в анлимитед. И шо? И ничего.
core dump'оп как небыло так и нет.

anonymous
()

программа может перехватить сигнал SIGQUIT и при нажатии Ctrl+Q делать
все что ей заблагорассудится, а дамп+выход - эта реакция по умолчанию
т.е если SIGQUIT не перехватывается.

CyberCoder
()

Например:

quit.c:
#include <stdio.h>
#include <signal.h>
#include <unistd.h>

void on_quit()
{
signal(SIGQUIT,on_quit);
printf("I dont like cores\n");
}
int main()
{
signal(SIGQUIT,on_quit);
sleep(10);
return 0;
}

Собираем
gcc -o quit quit.c
Запускаем:
./quit
НАЖИМАЕМ Ctrl+Q (или что там нужно для посылки SIGQUIT?)...
А ПРОГРАММА ВЫДАЕТ:
I dont like cores
Просек фишку?

CyberCoder
()

хорошо. тогда поставлю вопрос по другому. возможно ли сделать чтобы при обрушении любой проги ее дамп сбрасывался на диск? ниужели низя?

anonymous
()

>хорошо. тогда поставлю вопрос по другому. возможно ли сделать чтобы >при обрушении любой проги ее дамп сбрасывался на диск? ниужели низя?

Нет, нельзя.
Дамп создается только, если сигнал, посылаемый процессу не обрабатывается
отличным от "умолчательного" способом И этот сигнал по умолчанию создает дамп. Если это условие не выполняется - дамп не создается.

CyberCoder
()

а жаль...

anonymous
()

можно изучить man 7 signal и попосылать сигналы, которые дампают, но обрабатываются редко. Скажем, SIGBUS.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.