Турбо отладчик (Turbo Debugger) 3.0



              

Турбо отладчик 3.0 - стр. 321


       дентная программа должна вызываться с помощью программного преры-
       вания, то рабочая часть программы помещает адрес резидентной час-
       ти кода в соответствующий  вектор  прерывания.  Если  резидентная
       программа должна вызываться с помощью оперативной клавиши, то ре-
       зидентная часть должна модифицировать обработчик  прерывания  DOS
       для обработки нажатия соответствующих клавиш (клавиши) на клавиа-
       туре.
            Когда рабочая часть завершает выполнение, она вызывает функ-
       цию DOS,  которая позволяет части файла .EXE оставаться резидент-
       ной в  оперативной  памяти  после завершения выполнения программы
       (то есть программа завершила выполнения и  осталась  резидентной,
       отсюда и  название  таких  программ  TSR  -  terminate  and  stay
       resident). Рабочая часть резидентной программы знает размер рези-
       дентной части, а также ее адрес в памяти, и передает эту информа-
       цию DOS.  Операционная системе DOS при этом резервирует специаль-


       TDeb 3.0 #3-3                = 85 =
       ный блок памяти,  но может свободно записывать информацию в неза-
       щищенную часть памяти.  Таким образом, резидентная часть остается
       в памяти, а рабочая часть может быть "затерта".
            Тонкость отладки резидентных программ состоит в том,  что вы
       должны иметь возможность  отлаживать  и  резидентную,  и  рабочую
       часть программы.  Когда выполняется  файл  .EXE,  то  выполняется
       только код рабочей части TSR. Поэтому, когда вы как обычно запус-
       каете Турбо отладчик, задав имя файла, вы видите выполнение толь-
       ко рабочей части кода программы:  то,  как он устанавливает рези-
       дентную  часть  и обработчики прерываний.  Чтобы отлаживать рези-
       дентную  часть,  вы  должны  задать  точку  останова  и   сделать
       резидентным  сам  Турбо отладчик.  Подробнее мы расскажем об этом
       дальше.
                   Отладка резидентной в памяти программы



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