Системное программирование в UNIX средствами Free Pascal


         

определен макрос WCOREDUMP, который возвращает


определен макрос WCOREDUMP, который возвращает истинное или ложное значение в зависимости от установки этого бита в своем аргументе. Тем не менее следует учесть, что макрос WCOREDUMP не определен спецификацией XSI. С применением этого макроса предыдущий пример можно переписать так:

(* Проверка, получил ли дочерний процесс сигнал *)

if WIFSIGNALED(status) then

begin

  sig_no := WTERMSIG(status);

  writeln('Сигнал номер ', sig_no, ' завершил процесс ', pid);

  if WCOREDUMP(status) then

    writeln('... создан файл дампа памяти');

end;

Формат файла core известен отладчикам UNIX, и этот файл можно использовать для изучения состояния процесса в момент сброса образа памяти. Этим можно воспользоваться для определения точки, в которой возникает проблема.

Стоит также упомянуть функцию abort, которая не имеет аргументов:

abort;

Эта функция посылает вызвавшему ее процессу сигнал SIGABRT, вызывая его аварийное завершение, то есть сброс образа памяти. Процедура

abort полезна в качестве средства отладки, так как позволяет процессу записать свое текущее состояние, если что-то происходит не так. Она также иллюстрирует тот факт, что процесс может послать сигнал самому себе.


Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий