Руководство по Soft-ICE (DOS) - 2
|
- Сколько инженеров по программному обеспечению из компании "Майкрософт" нужно для того, чтобы выкрутить перегоревшую лампочку и закрутить новую?
- Нисколько. Они просто определят темноту как индустриальный стандарт.
|
2. Запустите, Soft-ICE из командной строки DOS, набрав
Прежде, чем фактически загрузиться, Soft-ICE выдаст
сообщение о загрузке и командную строку. Для предотвращения
вывода этой командной строки, поместите слово EXTENDED в файл
S-ICE.DAT. См. часть 6.4 для получения более подробной информации
о файле S-ICE.DAT. При использовании этого
метода, S-ICE.EXE автоматически загружается в
верхнюю точку расширенной памяти, если там еще
нет никакой другой программы. Если вы знаете, что у вас
нет других программ, использующих расширенную
память, этот метод - приемлем. Загруженный
этим методом, Soft-ICE занимает НОЛЬ байт
основной памяти. Команда, которую вы используете:
Примечания:
Вы НЕ можете активизировать все возможности Soft-ICE при загрузке из
командной строки. Если вы будете использовать Soft-ICE как автономный
отладчик, рекомендуется загрузить Soft-ICE из CONFIG.SYS.
Если вы хотите загрузить Soft-ICE как драйвер устройства, но не хотите, чтобы
Soft-ICE был резидентным все время, вы должны использовать переключатель /UN.
Обратитесь к части 6.3.1 для получения большей информации.
2.2.3 Конфигурирование Soft-ICE для Запуска с Установками Пользователя
Вы можете настраивать Soft-ICE при помощи переключателей Soft-ICE в CONFIG.SYS
и при помощи файла инициализации Soft-ICE S-ICE.DAT. Переключатели в
CONFIG.SYS позволяют указать метод резервирования расширенной памяти,
используемый Soft-ICE'ом. Файл инициализации S-ICE.DAT позволяет вам указать
опции конфигурации, указать команды, выполняемые по нажатию функциональных
клавиш, и определить строку автостарта. Строка автостарта используется, для
выполнения ряда команд, которые вы всегда используете при установке Soft-ICE.
Для более полной информация о настройке Soft-ICE, обратитесь к главе 6.
2.3 Выгрузка Soft-ICE
Когда-нибудь вам может понадобиться выгрузить Soft-ICE. Типичная причина для
выгрузки Soft-ICE - необходимость запуска программы, использующей инструкции
защищенного режима 80286 или 80386. Чтобы выгрузить Soft-ICE, введите:
Эта команда возвращает машину в реальный режим адресации. Если Soft-ICE
был первоначально загружен из CONFIG.SYS, память остается зарезервированной
для Soft-ICE и не может использоваться другими программами. Если Soft-ICE
первоначально загружен из командной строки, выгрузка освобождает память,
используемую S-ICE.EXE.
Предостережение:
Если в вашей системе есть наращенная память или если в настоящее время
используется расширенная память, выгрузка Soft-ICE может вызвать зависание ОС.
2.4 Повторная Загрузка Soft-ICE
Soft-ICE может быть повторно загружен в любое время, даже если он был перво-
начально загружен из CONFIG.SYS. Если Soft-ICE был загружен из CONFIG.SYS,
то первоначальная конфигурация (EMM 4.0, символы и исходный текст ...)
остается в силе. Чтобы повторно загрузить Soft-ICE, введите:
ГЛАВА 3
3.1 Введение
Все взаимодействие с Soft-ICE происходит в окне, которое может быть
вызвано в любое время. Все команды Soft-ICE помещаются в маленьком окне, но
окно может быть увеличено до полного экрана. Обычно вы будете использовать
маленькое окно при использовании Soft-ICE в дополнение к другому отладчику и
большое окно при использовании Soft-ICE в автономном режиме.
Окно сразу выводится во весь экран, если вы используете
файл конфигурации Soft-ICE (S-ICE.DAT), включенный
в дистрибутив.
3.2 Вызов Всплывающего Окна
Вы можете вызвать окно в любое время после установки Soft-ICE. По умолчанию
Soft-ICE вызывается нажатием клавиш CTRL и D. Однако, эта комбинация
может быть изменена, при помощи команды ALTKEY (см. часть 5.8).
3.3 Возврат Из Окна
Вернитесь к первоначальному экрану, используя команду X или комбинацию
клавиш, которую вы использовали для вызова Soft-ICE. Любые точки останова,
которые вы установили во время работы в Soft-ICE, останутся в силе.
3.4 Изменение Размера Окна
Вы можете изменять как ширину, так и высоту окна Soft-ICE.
Изменение размера окна особенно полезно в автономном режиме, когда на экран
выводится память с кодом программы.
Высота окна может изменяться от 8 до 25 строк. Для изменения высоты
окна используйте следующие комбинации клавиш:
ALT + стрелка вверх -- увеличивает высоту окна
ALT + стрелка вниз -- уменьшает высоту окна
Для изменения ширины окна, используйте команду WIN (см. часть 5.9).
Ввод WIN без параметров переключает следующие два режима:
режим WIDE - полная ширина экрана
режим NARROW - ширина 46 символов
Некоторые команды (то есть D, E, R, U) используют преимущество большой ширины
для вывода большего количества информации, когда окно находится в режиме WIDE.
3.5 Перемещение Окна
Окно Soft-ICE подвижно и может быть помещено куда угодно на
экране. Это особенно полезно, когда окно находится в режиме NARROW.
Перемещайте окно в любое время, когда вам нужно видеть информацию на экране за
окном. Следующие комбинации клавиш перемещают окно:
CTRL стрелка вверх -- на строку вверх
CTRL стрелка вниз -- на строку вниз
CTRL стрелка вправо -- на одну позицию вправо
CTRL стрелка влево -- на одну позицию влево
3.6 Клавиши Редактирования
Простой в использовании строковый редактор Soft-ICE позволяет повторно вызы-
вать и редактировать предыдущие команды. Функции строкового редактора подобны
функциям популярного редактора CED.
Следующие комбинации клавиш помогают при редактировании команд в окне команд:
стрелка вправо -- перемещает курсор вправо
стрелка влево -- перемещает курсор влево
INS -- переключает режим вставки
DEL -- удаляет текущий символ
HOME -- перемещает курсор в начало строки
END -- перемещает курсор в конец строки
стрелка вверх -- выводит предыдущую команду
стрелка вниз -- выводит следующую команду
SHIFT стрелка вверх -- прокрутка на одну строку вверх
SHIFT стрелка вниз -- прокрутка на одну строку вниз
PAGE UP -- прокрутка на одну страницу вверх
PAGE DN -- прокрутка на одну страницу вниз
BKSP -- удаляет предыдущий символ
ESC -- отменяет текущую команду
Есть специальные назначения клавиш, когда курсор находится в окне данных или
окне кода. Они описаны в частях для команд E и EC соответственно. Одно из
таких специальных назначений - SHIFT и SHIFT , когда курсор находится в
окне кода. Эти клавиши переназначаются так, что они выполняют функции, которые
обычно выполняют клавиши и . Таким образом вы можете повторно вызывать
предыдущие команды, когда курсор находится в окне кода.
3.7 Диалоговая Строка Состояния
Строка состояния в нижней части окна обеспечивает диалоговую помощь по
синтаксису команд.
3.8 Синтаксис Команд
Soft-ICE - отладочный инструмент с командным управлением. Для взаимодействия с
Soft-ICE вы вводите команды, которые могут изменяться при помощи параметров.
Все команды - текстовые строки, длиной от одного до шести символов, нечувстви-
тельные к регистру букв. Все параметры являются ASCII-строками или
выражениями.
Выражения - обычно числа, но могут также быть комбинациями чисел и операторов
(например, + - / *). Все числа выводятся в шестнадцатеричном формате.
Параметры типа byte - 2 цифры длиной, параметры типа word - 4 и параметры
типа double word - 2 параметра типа word, разделенные двоеточием (:).
Вот несколько примеров параметров:
12 -- параметр типа byte
10FF -- параметр типа word
E000:0100 -- параметр типа double word
Вместо байтов или слов в выражении могут использоваться регистры. Например,
команда " U CS:IP-10 " начнет дизассемблирование инструкций с адреса, находя-
щегося за десять байт до текущего адреса в указателе команд. В выражениях
могут использоваться следующие названия регистров:
AL, AH, AX, BL, BH, BX, CL, CH, CX, DL, DH,
DX, DI, SI, BP, SP, IP, CS, DS, ES, SS или FL
3.8.1 Определение Адресов Памяти
Много команд Soft-ICE требуют в качестве параметров адреса памяти. Адрес
памяти - это значение, состоящее из двух 16-битных слов, разделенных
двоеточием. Первое слово - адрес сегмента, второе слово - смещение
сегмента.
В любой команде Soft-ICE вместо адреса могут использоваться публичные символы.
Публичные символы могут быть загружены в Soft-ICE загрузчиком программ
(LDR.EXE). См. главу 7 (Символы и Исходный текст) для получения полного описа-
ния использования публичных имен.
Интерпретатор выражений Soft-ICE распознает несколько специальных символов в
объединении с адресами. Это следующие специальные символы:
$ -- Текущий CS:IP.
@адрес -- указатель типа double word
.число -- номер строки в исходном тексте
Символ $ может использоваться вместо CS:IP при вводе текущего адреса указателя
команд.
Символ @ позволяет вам обращаться к двойному слову, на которое указывает
адрес. Вы можете использовать несколько уровней @.
Если символ . предшествует адресу, адрес будет интерпретироваться как номер
строки в текущем исходном файле, а не как фактический адрес.
Это имеет силу, только когда загружены исходные файлы. В этом случае
адрес интерпретируется как десятичное число.
Примеры:
Эта команда начинает дизассемблирование инструкций в строке 1234(десятич.)
исходного текста.
Эта команда дизассемблирует инструкции, начинающиеся за 10
байт до текущего адреса в указателе команд.
Предполагает, что вы - на первой инструкции обработчика
прерывания. Ввод этой команды установит временную точку
останова на адрес возврата в стеке и пропускает подпрограмму
обработчика прерывания.
3.9 Функциональные Клавиши
Функциональные клавиши могут назначаться на выполнение любой командной строки,
которая может быть введена в Soft-ICE. Их можно переназначать из командной
строки или заранее путем их определения в файле S-ICE.DAT.
По умолчанию S-ICE.DAT, поставляемый на дистрибутивной дискете, содержит
определения для всех 12 функциональных клавиш. Вы можете изменять любое из
этих определений в любое время. Они присутствуют в качестве примера, но они
предназначены для облегчения работы пользователей Microsoft CodeView, по умол-
чанию работают следующие назначения:
F1 -- Выводит общую помощь (H;)
F2 -- Включает окно регистров (^WR;)
F3 -- Изменяет текущий режим работы с исходным текстом (^SRC;)
F4 -- Восстанавливает экран (^RS;)
F5 -- Возвращается в вашу программу (^X;)
F6 -- Переключает курсор между окном команд и окном кода (^EC;)
F7 -- Прогоняет программу до текущей позиции курсора (^HERE;)
F8 -- Выполняет одиночную инструкцию (^T;)
F9 -- Устанавливает точку останова в текущей позиции курсора (^BPX;)
|