Четвертый BORLAND С++ и его окружение



Отладка резидентной в памяти программы - часть 2


как обычно. При обнаружении точки останова отладчик приостанавливает TSR в начале резидентной части. Чтобы облегчить работу, синхронизируйте таблицу идентификаторов с

кодом в памяти. Идентификаторы в таблице отстоят друг от

друга на корректное число байт, но абсолютный адрес первого идентификатора не определен, так как DOS загрузила

резидентную программу по адресу в памяти, отличном от того, с которым она ассемблировалась. Поэтому, чтобы найти

первый идентификатор в памяти, используйте команду File Table.

  • Используйте команду File Table Relocate для помещения

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

    коду (программе). Для этого в ответ на подсказку отладчика задайте адрес сегмента Seg вашей резидентной программы, который определен с помощью утилиты TDMEM, плюс шестнадцатиричное значение 10 (для PSP размером 256 байт).

  • Дизассемблированные из памяти операторы синхронизированы

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

    же строке, что и информация из таблицы идентификаторов.

  • Для перехода к сегменту оперативной памяти, где находится

    ваша резидентная программа, используйте команду Goto

    (клавиши Ctrl-G). Это можно сделать, используя адрес сегмента вашей программы TSR, за которым следует смещение

    0000H, или с помощью перехода на конкретную метку вашей

    программы.

  • Отладьте резидентную часть программы.




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