LINUX.ORG.RU

Отсутствие core-файла при падении программы


0

2

Доброго времени суток!
У меня написана на С серверная программа. Она завершает свою работу по непонятным причинам. Хотелось бы, чтобы появлялся при падении core-файл, но это не происходит. В программе стоит обработчик SIGTERM. Перед вызовом программы в скрипте запуска стоит «ulimit -c unlimited».
Должен ли при этих условиях появляться core-файл при аварийном завершении программы. Если нет, то почему? Если да, то какие возможные причины того, что у меня не появляется?

> Она завершает свою работу по непонятным причинам.
Т.е. это не SIGSEGV/SIGABRT/что-либо ещё?

AITap ★★★★★
()

Напиши прогу, которая точно падает с сегфолтом, и запусти её своим скриптом вместо твоей непонятной проги. Посмотрим, вывалится ли из неё корка.

const86 ★★★★★
()
Ответ на: комментарий от const86

Сделал в программе маленький массив. В кору выпала.

ares4322
() автор топика
Ответ на: комментарий от ares4322

Конечно, не 100%-но, но можно.
Ещё можно не мелочиться и взять сразу gdb, собрав программу с отладочной информацией.

AITap ★★★★★
()
Ответ на: комментарий от AITap

Спасибо, попробую. Правда программа валится через неделю работы. Надо в лог писать вывод strace. За неделю он сильно разрастется

ares4322
() автор топика
Ответ на: комментарий от ares4322

Может быть, попробовать что-то вроде:
mkfifo strace.log
strace -o strace.log myprogram ... &
tail -n 1000 strace.log > strace.log.1
И в strace.log.1 окажутся последние 1000 строк лога (tail ведь не съест всю память?)

AITap ★★★★★
()
Ответ на: комментарий от ares4322

> Правда программа валится через неделю работы.

На утечку похоже. Попросите valgrind помочь вам в поиске утечек.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Вывод: ulimit -c 0 Но перед запуском программы я запускаю ulimit -c unlimited. Может как-то глобально можно установить ulimit -c unlimited?

ares4322
() автор топика
Ответ на: комментарий от andreyu

Поменял в /etc/profile вызов ulimit -c 0 на ulimit -c ulimited, перелогинился и ulimit -a для core показывает unlimited. Посмотрим, что будет. Спасибо!

ares4322
() автор топика

[libastral]

fedora?

[/libastral]

/proc/sys/kernel/core_pattern

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