|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Maxim Timofeyev 2:5030/1763.1 27 Sep 2002 16:26:20 To : Valentin Nechayev Subject : Re: signal( SIGSEGV, function ) -------------------------------------------------------------------------------- VN> Корка не создается, если VN> 1) размер ее больше чем соответствующий limit Hе может привысить. VN> 2) нет прав на запись в текущий каталог Точно есть. VN> 3) процесс от момента первого exec() подвергался set*uid() или set*gid() VN> с реальной сменой этих id Hе использует. VN> Ищи причину. ИМХО из-за специфических ключей при сборке, но еще не проверял. VN> Вдогонку: для сшибания программы с коркой есть специальный сигнал - SIGQUIT. VN> Hе надо для этого использовать SIGSEGV. Дык я не собираюсь сшибать программу сам, я хочу перехватить сигнал (перехватываю SIGSEGV) для корректного завершения ибо использую ncurces, а в случае некоректного завершения съезжает терминал. Hо мне нужно перехватить сигнал, корректно завершить программу, да еще и создать корку для дальнейшего рассмотрения. ;-) Один раз после перехвта сигнала она создалась, но внутри оказалась зацикленный вызов функции завершения (куча раз вызывающаяся). Да и размер корки из-за этого был порядка 9Mb. ;) В реальности до 1Mb редко доходит. Хотя редко происходят такие вот сбои, но все же бывает в процессе отладки, а вот ут и не только. ;( MT>> 2. Как узнать откуда произошло прерывание выполненяемой программы MT>> при signal(), а также alarm() и т.п. Hужно для записи в лог в отладочных MT>> целях. VN> Ставь глобальную переменную в нужное значение. Т.е. стандратного способа нет? ;( -- [2:5030/1763@fidonet.org] [tmahome@tma.spb.ru] [http://tma.spb.ru] --- tin/1.5.10-20011117 ("Darkcell") (UNIX) (Linux/2.4.18-alt6master-up (i686)) * Origin: TMA at HOME (2:5030/1763.1) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/390439ac870b8.html, оценка из 5, голосов 10
|