Процессы и сигналы - Cтраница 12
Оглавление
Процессы и сигналы
Страница 2
Страница 3
Страница 4
Страница 5
Страница 6
Страница 7
Страница 8
Страница 9
Страница 10
Страница 11
Страница 12
Страница 13
Страница 14
Страница 15
Страница 16
Страница 17
Страница 18
Страница 19
Страница 20
Страница 21
Все страницы

Что происходит при установке контрольной точки? При запросе на установку контрольной точки по заданному адресу отладчик читает содержимое отлаживаемого процесса по этому адресу и записывает это содержимое в таблицу (Сохраненное слово). Затем, отладчик по указанному адресу записывает машинную команду, которая вызовет возникновение события, связанного с некоторым сигналом (например, команда деления на ноль, вызов программного прерывания или любая команда, вызывающая событие, которое должно быть известно), после этого мы можем запустить отлаживаемый процесс (ptrace, op=7). В тот момент, когда управление придет на адрес, где мы установили контрольную точку, произойдет прерывание процесса и событие, связанное с известной установкой. Для отладчика это будет видно следующим образом — после запуска на продолжение отлаживаемого процесса выполняется функция wait, которая ожидает события в отлаживаемом процессе. Событие произошло, его причиной был некоторый сигнал. Действия отладчика:

  1. Не совпадает ли сигнал, который прервал процесс с сигналом, который является контрольным сигналом. Если не совпадает, то произошла какая-то ситуация, которая обрабатывается по-своему. Если же совпадает, то мы, скорее всего, попали на контрольную точку (предположим, что у нас это сигнал деления на ноль).
  2. После этого мы читаем из контекста процесса точку останова — если она совпала с одной из позиций таблицы отладчика, то это означает, что мы совершенно точно попали на контрольную точку. Если такого совпадения не обнаружено, то это означает, что тревога ошибочна и обработка сигнала уходит по другому направлению.
  3. Если все-таки мы оказались на контрольной точке, то можем выполнить какие-то действия над отлаживаемым процессом (чтение/запись регистров, ячеек памяти и прочее).
  4. Наконец, нам хочется продолжить выполнение программы, но при этом мы бы хотели сохранить контрольную точку. Что может сделать отладчик? Он восстанавливает оригинальное содержимое машинного слова. Включает режим трассировки и запускает программу с прерванного адреса. После чего выполняется команда, которую мы восстановили и процесс приостанавливается (так как включена трассировка) на следующей команде. Теперь мы опять по нужному адресу пишем команду деления на ноль и продолжаем процесс уже вне режима трассировки. Таким образом мы восстановили контрольную точку.


 
автоматизация торговли автоматизация предприятия вот это интереснее автоматизация звуков ну это просто какой-то бред автоматизация процессов производства ну это у всех такое правда автоматизация технологического производства ну опять хоть бы чо интересно придумали автоматизация и управление еееее вот оно, только без толку автоматизация технологических процессов и производств такое даже вводят?! вот бред 1с комплексная автоматизация ну конечно комплексно все хотят технологии автоматизации нет никаких технологий, одни киборги схема автоматизации ну это какая-то вообще хуета проект автоматизации бери да пиши вот те и проект промышленная автоматизация и такое, да, бывает автоматизация проектирования ооо автоматизация чо реал есть такое ооо??!?!