Руководство по Soft-ICE (DOS) - 6Delphi , Программа и Интерфейс , Руководство по Soft-ICEРуководство по Soft-ICE (DOS) - 6
Сейчас мы используем интерактивный ассемблер Soft-ICE, чтобы решить проблему. Введите:
Soft-ICE выдаст в своей командной строке адрес. Введите:
Нажмите ВВОД для выхода из ассемблера. Обратите внимание, что в окне кода появилась инструкция NOP вместо перекрытия CS по смещению 003BH. Нажмите клавишу F3, чтобы вернуться к режиму исходного текста, (исходный код, конечно, не изменился). Нажмите ALT D, чтобы запустить исправленную программу-пример. Нажмите: Пробел и несколько непробельных клавиш Работает! Вы исправили ошибку! Для выхода из программы Jed'а и возврата в DOS, введите:
Теперь мы продемонстрируем другую особенность Soft-ICE. Введите:
Это загрузит программу-пример еще раз. Введите:
Первые две показанных инструкции:
Обратите внимание, что инструкция перехода указывает сама на себя. Этот бесконечный цикл обычно необратимо завешивает систему. Введите:
Мы только что включили режим BREAK. Режим BREAK заставит систему работать немного медленней, но позволит Soft-ICE активизироваться даже когда система в нормальных условиях считается зависшей. Выйдите из Soft-ICE, нажав ALT D. Ваша система теперь зависла. Для неверующих, нажмите: CTRL ALT DEL Ничего не случилось! Она определенно зависла. Теперь нажмите ALT D. Окно Soft-ICE - вернулось! Чтобы выйти из бесконечного цикла, введите:
Сейчас вы вернулись в DOS. Попробуйте произвести какие-нибудь действия, чтобы почувствовать снижение производительности. Много людей считают удобным оставлять BREAK ON как конфигурацию по умолчанию. Отключите режим BREAK, введя:
Сделайте что-нибудь, чтобы сравнить скорость. Вот и все! Веселитесь! Настало время начать экспериментировать и отлаживать ваши собственные программы. Просмотрите оставшуюся часть руководства и при необходимости обратитесь к специфическим разделам. РАЗДЕЛ II -- Команды Раздел II содержит списки синтаксиса для каждой команды Soft-ICE и объяснения и примеры для каждой команды. Все числа находятся в шестнадцатеричном формате; любое число может быть выражением с использованием +,-,/,* или регистров. Все команды нечувствительны к регистру букв. Слова, выделенные курсивом в выражениях синтаксиса команд должны быть заменены фактическими значениями, вместо их ввода курсивом. В этой части везде используются следующие письменные условные обозначения:
[] -- Скобками выделяется необязательный пункт синтаксиса. Используйте или пункт x или пункт y. count -- Счетчик - байтовое значение, которое определяет количество случаев возникновения условий останова, которое должен быть пропущено перед фактической точкой останова. Если счетчик не определен, принимается значение по умолчанию 1. Каждый раз как вызывается окно Soft-ICE'а, значения счетчика переустанавливаются на первоначально указанные значения. verb -- Опция - значение, определяющее на какой тип доступа будет настроена точка останова. Он может быть установлен на "R" для чтения, "W" для записи, "RW" для чтения и записи или "X" для выполнения. address -- Адрес - значение, состоящее из двух 16-битных слов, разделенных двоеточием. Первое слово - адрес сегмента, второе слово - смещение сегмента. Адреса могут состоять из выражений с регистрами и символов. Адрес может также содержать специальные символы "$", "." и "@". См. часть 3.8 (Синтаксис Команд) для описания этих специальных символов. break-number -- Номер останова - идентификационный номер, который определяет точку останова, используемый при управлении точками останова (Например, их редактирование, удаление, активация или дезактивация). Номером останова может быть шестнадцатеричная цифра от 0 до F. list -- Список - ряд номеров останова, разделенных запятыми или пробелами. mask -- Маска - битовая маска, представленная: комбинацией единиц, нулей и X'ов. X'ы - любые биты. Пример:
Эта команда вызовет останов, который произойдет, если в порт 21H будет произведена запись набора битов в вышеуказанном порядке. GT, LT -- GT и LT - определители команды беззнакового сравнения значений. ГЛАВА 4 Использование Команд Работы с Точками Останова 4.1 Введение 4.2 Установка Точек Останова 4.3 Управление Точками Останова 4.1 Введение У Soft-ICE есть возможности работы с точками останова, обычно доступные только в аппаратных отладчиках. Мощность и гибкость процессора 80386 дают широкие возможности работы с точками останова без дополнительной аппаратуры. Точки останова можно устанавливать на запись и чтение в ячейку памяти, запись и чтение в диапазон (область) памяти, выполнение программы и доступ к портам. Soft-ICE назначает одну шестнадцатеричную цифру (0-F) каждой точке останова. Этот номер останова используется для обозначения точек останова, когда вы их устанавливаете, удаляете, отменяете, восстанавливаете или редактируете. Все точки останова Soft-ICE - "прилипающие". Это означает, что они не исчезают автоматически после того, как они использовались; вы должны намеренно удалить или отменить их, используя команды BC или BD. Soft-ICE может поддерживать 16 точек останова одновременно. Вы можете устанавливать до десяти точек останова отдельного типа, кроме точек останова на ячейку памяти (BPM'ов), которых может быть только четыре, из-за ограничений процессора 80386. Для точек останова может быть определен параметр - счетчик. Параметр - счетчик сообщает Soft-ICE, сколько раз точка останова должна игнорироваться перед произведением останова. 4.2 Установка Точек Останова Команды:
BPM, BPMB, BPMW, BPMD -- Устанавливают точку останова на доступ к памяти или выполнение BPM, BPMB, BPMW, BPMD BPM, BPMB, BPMW, BPMD -- Точка останова на доступ к памяти или выполнение Синтаксис:
размер -- B, W, D Эти определители применимы только к точкам останова на чтение и запись. значение -- Значение размером байт, слово или двойное слово, в зависимости от указанного размера. Комментарии: Команды BPM позволяют вам устанавливать точку останова на чтение или запись в память или на выполнение. Если опция не указана, по умолчанию принимается RW. Если размер не определен, по умолчанию принимается байт. Все типы опций, кроме X, вызывают выполнение программой инструкции, которая вызвала останов. Текущий CS:IP будет указывать на следующую за точкой останова инструкцию. Если тип опции - X, текущий CS:IP будет указывать на инструкцию, на которую устанавливали точку останова. Если указан R, то останов будет происходить при доступе на чтение и на операции записи, не изменяющие значение ячейки памяти. Если тип опции - R, W или RW, выполнение инструкции по указанному адресу не будет вызывать останова. Замечание: Если используется BPMW, указанный адрес должен начинаться на границе слова. Пример:
Эта команда определяет точку останова на доступ к байту памяти. Останов произойдет, когда шестнадцатеричное число 10 будет записано третий раз в ячейку 1234:SI.
Эта команда определяет точку останова на выполнение. Останов произойдет, когда в первый раз будет достигнута инструкция по адресу CS:1235. Текущий CS:IP будет указывать на инструкцию, на которую устанавливали точку останова.
Эта команда определяет точку останова на запись слова в память. Останов произойдет, когда первый раз в ячейку DS:F00 произойдет запись значения, устанавливающая старший бит в 0 и младший бит в 1. Другие биты могут принимать любое значение. Руководство по Soft-ICE (DOS) - руководство к использованию интерактивного ассемблера для отладки программ на платформе DOS. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Руководство по Soft-ICE ::
|
||||||||||||||||||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |