BPM Установка точки останова на
ПРИЛОЖЕНИЕ A
ФУНКЦИОНАЛЬНЫЙ СПИСОК КОМАНД
Команда Описание
Установка точек останова:
BPM Установка точки останова на доступ к памяти или
выполнение
BPR Установка точки останова на диапазон памяти
BPIO Установка точки останова на доступ к порту ввода/вывода
BPINT Установка точку останова на прерывание
BPX Установка/отмена точки останова на выполнение
CSIP Установка спецификатора диапазона CS:IP
BPAND Ожидание срабатывания многих точек останова
Управление точками останова:
BD Отключение точек останова
BE Активизация точек останова
BL Вывод списка точек останова
BPE Редактирование точек останова
BPT Использование точки останова как шаблона
BC Удаление точек останова
Команды вывода и редактирования:
U Дизассемблировать инструкции
R Вывести или изменить регистры
MAP Вывести карту памяти системы
D Вывести память
E Редактировать память
INT? Вывести номер последнего прерывания
? или H Вывести справочную информацию
VER Вывести номер версии Soft-ICE
Команды работы с портами ввода/вывода:
I Ввод из порта ввода/вывода
O Вывод в порт ввода/вывода
Команды передачи управления:
X Выйти из окна Soft-ICE
G Перейти по адресу
T Протрассировать одну команду
P Программный шаг
HERE Выполнить до текущей строки курсора
G Перейти по адресу
GENINT Вызывает прерывание
EXIT Вызывает выход из текущей программы DOS
BOOT Перезагрузить систему (сохранив Soft-ICE)
HBOOT Выполнить жесткую перезагрузку системы (полный сброс)
Команды режима отладки:
ACTION Установить действие после достижения точки останова
WARN Установите режим предупреждения при повторной входимости
DOS/ROM BIOS
BREAK Прерывание исполнения в любое время
I3HERE Перенаправить прерывание 3 на Soft-ICE
Сервисные команды:
A Транслировать код
S Поиск данных
F Заполнить память данными
M Переместить данные
C Сравнить два блока данных
Специализированные команды отладки:
SHOW Вывести команды из буфера истории
TRACE Войти в режим эмуляции трассировки
XT Одиночный шаг в режиме эмуляции трассировки
XP Программный шаг в режиме эмуляции трассировки
XG Перейти по адресу в режиме эмуляции трассировки
XRSET Сбросить буфер обратной трассировки
VECS Сохранить/восстановить/сравнить векторы прерываний
SNAP Сохранить содержимое блока памяти
EMMMAP Вывести карту распределения EMM-памяти
Команды работы с окнами:
WR Включить/выключить окно регистров
WC Включить/выключить/установить размер окна кода
WD Включить/выключить/установить размер окна данных
EC Перейти/выйти из окна кода
. Найти текущую команду
Команды Настройки Отладчика:
PAUSE Пауза после каждого экрана при просмотре
ALTKEY Установить альтернативную комбинацию клавиш
для вызова Soft-ICE
FKEY Вывести и редактировать функциональные клавиши
BASE Установить/вывести текущее основание системы счисления
CTRL-P Переключить сохранение лога сеанса на принтер
Print-Screen Печать содержимого экрана
PRN Установить порт вывода на принтер
Команды управления экраном:
FLASH Восстанавливать экран во время P и T
FLICK Предотвращение "снега"
WATCHV Установить слежение за видеорежимом
RS Восстановить экран программы
CLS Очистить окно
ALTSCR Перейти на альтернативный экран
WIN Изменить размер окна Soft-ICE
Команды работы с символами и исходными строками:
SYM Установить/вывести символ
SYMLOC Переместить базу символов
SRC Переключиться между режимом исходного текста, смешанным
и режимом кода
FILE Изменить/вывести текущий файл с исходным текстом
SS Искать строку в текущем файле с исходным текстом
ПРИЛОЖЕНИЕ B
АЛФАВИТНЫЙ СПИСОК КОМАНД
Команда Описание
. Найти текущую команду
? или H Вывести справочную информацию
A Транслировать код
ACTION Установить действие после достижения точки останова
ALTKEY Установить альтернативную комбинацию клавиш
для вызова Soft-ICE
ALTSCR Перейти на альтернативный экран
BASE Установить/вывести текущее основание системы счисления
BC Удаление точек останова
BD Отключение точек останова
BE Активизация точек останова
BL Вывод списка точек останова
BOOT Перезагрузить систему (сохранив Soft-ICE)
BPAND Ожидание срабатывания многих точек останова
BPE Редактирование точек останова
BPINT Установка точку останова на прерывание
BPIO Установка точки останова на доступ к порту ввода/вывода
BPM Установка точки останова на доступ к памяти или
выполнение
BPR Установка точки останова на диапазон памяти
BPT Использование точки останова как шаблона
BPX Установка/отмена точки останова на выполнение
BREAK Прерывание исполнения в любое время
C Сравнить два блока данных
CLS Очистить окно
CSIP Установка спецификатора диапазона CS:IP
CTRL-P Переключить сохранение лога сеанса на принтер
D Вывести память
E Редактировать память
EC Перейти/выйти из окна кода
EMMMAP Вывести карту распределения EMM-памяти
EXIT Вызывает выход из текущей программы DOS
F Заполнить память данными
FILE Изменить/вывести текущий файл с исходным текстом
FKEY Вывести и редактировать функциональные клавиши
FLASH Восстанавливать экран во время P и T
FLICK Предотвращение "снега"
G Перейти по адресу
GENINT Вызывает прерывание
HBOOT Выполнить жесткую перезагрузку системы (полный сброс)
HERE Выполнить до текущей строки курсора
I Ввод из порта ввода/вывода
I3HERE Перенаправить прерывание 3 на Soft-ICE
INT? Вывести номер последнего прерывания
M Переместить данные
MAP Вывести карту памяти системы
O Вывод в порт ввода/вывода
P Программный шаг
PAUSE Пауза после каждого экрана при просмотре
Print-Screen Печать содержимого экрана
PRN Установить порт вывода на принтер
R Вывести или изменить регистры
RS Восстановить экран программы
S Поиск данных
SHOW Вывести команды из буфера истории
SNAP Сохранить содержимое блока памяти
SRC Переключиться между режимом исходного текста, смешанным
и режимом кода
SS Искать строку в текущем файле с исходным текстом
SYM Установить/вывести символ
SYMLOC Переместить базу символов
T Протрассировать одну команду
TRACE Войти в режим эмуляции трассировки
U Дизассемблировать инструкции
VECS Сохранить/восстановить/сравнить векторы прерываний
VER Вывести номер версии Soft-ICE
WARN Установите режим предупреждения при повторной входимости
DOS/ROM BIOS
WATCHV Установить слежение за видеорежимом
WC Включить/выключить/установить размер окна кода
WD Включить/выключить/установить размер окна данных
WIN Изменить размер окна Soft-ICE
WR Включить/выключить окно регистров
X Выйти из окна Soft-ICE
XG Перейти по адресу в режиме эмуляции трассировки
XP Программный шаг в режиме эмуляции трассировки
XRSET Сбросить буфер обратной трассировки
XT Одиночный шаг в режиме эмуляции трассировки
ПРИЛОЖЕНИЕ C
ФУНКЦИОНАЛЬНЫЙ СПИСОК КЛАВИШ
Клавиша Описание
Перемещение окна Soft-ICE:
CTRL Переместить окно на строку вверх
CTRL Переместить окно на строку вниз
CTRL Переместить окно на одну позицию вправо
CTRL Переместить окно на одну позицию влево
Изменение Размеров окна Soft-ICE:
ALT Расширить окно
CTRL Сузить окно
Редактирование Командной Строки:
Переместить курсор вправо
Переместить курсор влево
INS Включить/выключить режим вставки
DEL Удалить текущий символ
HOME Переместить курсор на начало строки
END Переместить курсор к концу строки
Вывести предыдущую команду
Вывести следующую команду
SHIFT Прокрутить на одну строку вверх
SHIFT Прокрутить на одну строку вниз
PAGE UP Прокрутить на одну страницу вверх
PAGE DN Прокрутить на одну страницу вниз
BKSP Удалить предыдущий символ
ESC Отменить текущую команду
ПРИЛОЖЕНИЕ D
Сообщения об Ошибках и их Описания
В этом приложении указаны и объяснены сообщения об ошибках, которые может
выдавать Soft-ICE.
A General Protection Violation Has
Occurred. This is typically caused
by a protected mode instruction.
CS:IP = XXXX:XXXX
Type 'C' to Continue
Type 'R' to Return to Soft-ICE.
Это сообщение может появиться, либо когда обнаружена
инструкция защищенного режима 80386 либо в
условиях выхода за пределы сегмента. Часто можно
определить причину этого сообщения,
дизассемблируя команду по указанному адресу.
Если первый байт команды - 0FH, тогда вероятно это -
команда защищенного режима. Если команда
обращается к слову по смещению 0FFFFH в сегменте,
тогда это - проблема выхода за сегмент. Если вы введете
"C", чтобы продолжить, управление перейдет обработчику 0
прерывания в виртуальной машине DOS.
Это сообщение часто появляется, когда программа переходит к
адресу, который не содержит допустимого кода или когда
допустимый код был перезаписан.
Attempt To Divide By 0
Это сообщение появляется, когда Soft-ICE вычисляет значение
выражения и делитель в операции деления - нуль.
BPM Break Point Limit Exceeded
Soft-ICE предоставляет максимум 4 точки останова на память.
Это сообщение выводится, если пытаетесь превысить максимальное
ограничение.
Break Point Table Full
Soft-ICE предоставляет максимум 16 точек останова. Это сообщение
выводится, если вы пытаетесь превысить максимальное ограничение.
Count Too Large
Команды точек останова Soft-ICE содержат необязательное
поле счетчика. Максимальным значением этого поля может быть
FFH. Это сообщение об ошибке выводится, если указанное значение
счетчика больше чем FFH.
DOS Memory Structures Corrupted
Это сообщение выводится, если Soft-ICE обнаруживает проблему
с цепочкой блоков памяти DOS при использовании команды
MAP. Это сообщение также может появиться, если вы используете
команду MAP с операционной системой, отличной от DOS.
Duplicate Break Point
При вводе точки останова Soft-ICE сравнивает
условия точки останова с аналогичными у точек останова
установленных ранее. Если условия совпадают,
выводится это сообщение.
Interrupt Break Point Limit Exceeded
Soft-ICE предоставляет максимум 10 точек останова на
прерывание. Это сообщение выводится, если вы пытаетесь
превысить максимальное ограничение.
Invalid Opcode Has Occurred
CS:IP =XXXX:XXXX
Type 'C' to Continue
Type 'R' to Return to Soft-ICE.
Когда 80386 сталкивается с командой, которая является
запрещенной, он генерирует прерывание 6. Soft-ICE выводит
это сообщение и дает вам возможность продолжить или
вернуться в Soft-ICE. Если вы введете "C", чтобы продолжить,
управление передается обработчику прерыванию 6 в
виртуальной машине DOS.
Это сообщение часто появляется, когда программа переходит
к адресу, который не содержит допустимого кода или когда
допустимый код был перезаписан.
I/O Break Point Limit Exceeded
Soft-ICE предоставляет максимум 10 точек останова на ввод-вывод.
Это сообщение выводится, если вы пытаетесь превысить максимальное
ограничение.
No Alternate Screen
Это сообщение выводится, если используется команда
ALTSCR и Soft-ICE обнаруживает только один видеоадаптер.
Parameter is Wrong Size
Определенные поля требуют специфического размера типа данных (байт,
слово или двойное слово ). Это сообщение выводится, если
превышен размер типа данных. Для примера, если вы используете
команду 'BPMB 2000:2000 EQ 1234', вы просите Soft-ICE
обнаружить байтовый доступ к ячейке 2000:2000 со
значением 1234H. Так как 1234H больше чем байт,
команда вызовет появление этого сообщения об ошибке.
Parameters Required
Большинство команд Soft-ICE требуют одного или
более параметров. Если команда вводится без
требуемого числа параметров, выводится это
сообщение.
Range Break Point Limit Exceeded
Soft-ICE предоставляет максимум 10 точек останова на диапазон
памяти. Это сообщение выводится, если вы пытаетесь превысить
максимальное ограничение.
Second Parameter Must Be Greater than First
При определении диапазона памяти, первое введенное
число должно быть нижним ограничением диапазона, иначе
будет выведено это сообщение.
Segment:Offset Can Not Wrap
Большинство команд Soft-ICE не позволяют указателю
памяти (сегмент:смещение) переходить границу между высокой и
низкой памятью. Например, указатель памяти FFFF:FFFF переходит
границу и запрещен. Это сообщение выводится если вы делаете
попытку к перейти границу между высокой и низкой памятью.
Soft-ICE cannot be loaded.
Needs to load at top of memory.
Load before any TSR's or control programs.
Soft-ICE должен загрузиться в самую высокую возможную
область памяти. Затем эта память "вырезается",
делаясь невидимой для программ DOS, так что они не могут
разрушить Soft-ICE. Это сообщение выводится, если Soft-ICE
обнаруживает, что другая программа уже загрузилась в верхнюю
часть памяти.
Soft-ICE cannot run with other 80386 control programs
80386 поддерживает только одну программу защищенного режима,
так что Soft-ICE не может сосуществовать с другими управляющими
программами. При отладке программы, использующей EMS
и EEMS, вы можете получить это сообщение об ошибке, когда вы
попробуете загрузить Soft-ICE, потому что некоторые системы 80386
продаются с управляющей программой, которая использует систему
страничной организации памяти 80386, чтобы дать вам EMS и EEMS
на плате, где есть только расширенная память. Однако, для отладки
программ, использующих EMS и EEMS, вы можете использовать плату с
настоящей отображаемой памятью.
Soft-ICE has already been loaded
Это сообщение происходит если вы повторно пытаетесь загрузить
Soft-ICE.
Soft-ICE has not been loaded
Это сообщение появляется, если вы пытаетесь выгрузить Soft-ICE,
когда он еще не загружен.
Soft-ICE loads at the top of extended memory. This may conflict with other
programs that use extended memory. If you are sure it will not conflict,
then answer 'Y', otherwise answer 'N' and refer to the chapter on loading
Soft-ICE with extended memory.
Это сообщение появляется, если вы пытаетесь загрузить Soft-ICE
в расширенную память, и S-ICE.SYS не был загружен в вашем
файле CONFIG.SYS. Это предупреждение выдается, чтобы
удостовериться, что вы не сотрете случайно виртуальный
диск или другую программу, которая может загрузиться в
расширенную память. Для большей информации обратитесь к
части 2.2, "Загрузка Soft-ICE" и главе 6,
"Опции Инициализации".
Soft-ICE will only run on 80386 based machines
Soft-ICE требует микропроцессор Intel 80386.
Syntax Error
Это сообщение выводится, если введенная
информация не удовлетворяет структуре ни одной
команды Soft-ICE.
The P & G Commands Function In RAM Only
Soft-ICE использует два метода выполнения команд
P и G. Первый метод использует регистры точек
останова 80386. Однако, если вы уже установили 4
точки останова стиля BPM, Soft-ICE использует метод
INT 3, который будет работать только в ОЗУ. Если вы
в этом случае пытаетесь использовать команды P или G
в ROM, Soft-ICE обнаруживает эту ситуацию и выводит
это сообщение об ошибке.
Valid Verbs are R, W, RW, X
Это сообщение выводится, если в команде BPM указывается
недопустимая опция. При использовании команды BPM
допустимые выборы для опций - R(чтение), W (запись),
RW (чтение/запись), и X (выполнение).
ПРИЛОЖЕНИЕ E
РУКОВОДСТВО ПО ПОИСКУ НЕИСПРАВНОСТЕЙ
В этом приложении даны решения для некоторых возможных проблем, с которыми вы
можете столкнуться при использовании Soft-ICE. Если вы не найдете проблему
здесь, проверьте файл README.SI на вашей дистрибутивной дискете для любых
приемов по поиску неисправностей, которые не указаны в этом руководстве.
Команда time в конце дня не показывает правильное время.
Когда окно Soft-ICE активно, Soft-ICE не позволяет ни одному
прерываниям пройти к системе. Это никак не воздействует на
часы реального времени, так что в следующий раз, когда вы
перезагрузитесь, время будет снова отображаться правильно.
Вы также можете исправлять время, запуская программу UPTIME.
Она получает время из часов реального времени и вызывает
DOS, чтобы установить время.
При отладке программы, которая использует EMS и EEMS, вы получаете это
сообщение об ошибке, когда вы пробуете загрузить Soft-ICE "Soft-ICE
cannot run with other 80386 control programs".
Некоторые системы 80386 продаются с управляющей программой, которая
использует систему страничной организации памяти 80386, чтобы дать
вам EMS и EEMS на плате, где есть только расширенная память.
80386 поддерживает только одну программу защищенного режима,
так что Soft-ICE не может сосуществовать с другими управляющими
программами. Однако, для отладки программ, использующих EMS и EEMS,
вы можете использовать плату с настоящей отображаемой памятью.
Soft-ICE не вызывает останова в вашем программном отладчике.
Некоторые программные отладчики реагируют на останов, только когда
используются с одним типом отладочного прерывания. Обратитесь к
команде ACTION в части 5.4. Там указаны три различных типа
стандартного действия, которое может выполняться,
когда срабатывает точка останова. Попробуйте все три. Какие-то действия
работают лучше для различных отладчиков.
Soft-ICE не появляется, когда ваш монитор находится в графическом режиме или
он неправильно восстанавливает ваш графический экран.
Soft-ICE не использует ROM BIOS для вывода,
он должен идти прямо на аппаратные средства. Soft-ICE был
разработан, чтобы работать со следующими типами
контроллеров или 100 % совместимыми с ними:
CGA
MDA
Hercules
EGA
VGA
Если ваш контроллер - не один из их или не 100 %
совместимый, вы может использовать второй контроллер
и монитор и использовать команду ALTSCR описанную в
части 5.9.
Комбинация клавиш, используемая для вызова Soft-ICE находится в противоречии
с существующей программой, которую вы запускаете.
Вы можете установить другую комбинация клавиш для
вызова Soft-ICE, используя команду ALTKEY. Если это
не помогло, добавьте к текущей комбинации клавиш
клавишу SHIFT и используйте эту новую комбинацию
клавиш, чтобы вызывать существующую программу.
Soft-ICE не будет реагировать на новую комбинацию
клавиш и позволит ей пройти к существующей программе.
Обратитесь к команде ALTKEY в части 5.8.
Soft-ICE не вызывается при сбое вашей программы.
Обратитесь к команде BREAK в части 5.4. Эта
команда позволяет вам вызвать окно Soft-ICE,
когда система зависает с отключенными прерываниями.
После того, как точка останова вызывает ваш отладчик, ваш отладчик перестает
отвечать.
Есть две возможных причины, по которым могла возникнуть
эта проблема:
1) Ваш отладчик вызвал повторный вход в DOS или ROM
BIOS. DOS и ROM BIOS не полностью реентерабельны,
так что ваш отладчик может работать неправильно.
Используйте команду WARN, чтобы включать режим
предупреждения повторной входимости. В следующий
раз при попытке повторного входа в DOS или ROM BIOS,
будет выдано предупреждающее сообщение и у вас будет
выбор вернуться в Soft-ICE, чтобы избежать проблемы.
Обратитесь к команде WARN в части 5.4.
2) Останов произошел посередине программы-обработчика
прерывания. Некоторые отладчики не могут справиться
с такими ситуациями. Используйте ACTION, установленное
на HERE, потому что Soft-ICE позволяет вам прерывать
выполнение посередине подпрограммы прерывания.
Обратитесь к команде ACTION в части 5.4.
Вы используете монитор CGA и, когда вызывается Soft-ICE, у вас на экране
появляется "снег".
Некоторые типы видеоплат будут генерировать нежелательное мерцание,
если символы выводятся без ожидания горизонтального или вертикального
обратного хода луча. Чтобы убрать "снег", включите режим FLICK.
Обратитесь к команде FLICK в части 5.9.
При выполнении команды BOOT система начинает перезагрузку, но потом зависает.
Soft-ICE использует для мягкой перезагрузки метод прерывания 19.
Есть два возможных случая, когда этот метод может потерпеть
неудачу:
1) На чисто загруженной системе этот метод будет прекрасно
работать. Но если система разрушена содержащей ошибки
программой, есть вероятность, что этот метод не будет
работать.
2) Некоторые программы, использующие расширенную или
отображаемую память типа EMS-драйверов или дисковых
КЭШей, не способны поддерживать перезагрузку стиля
прерывания 19. При отладке драйверов устройств и программ
начальной загрузки с этой проблемой, вы должны использовать
следующий метод. Загрузите систему без драйверов, которые
вызывают проблему; загрузите Soft-ICE; установите драйверы,
чтобы они загрузились при следующей перезагрузке; и затем
используйте команду BOOT.
Обратитесь к команде
BOOT в части 5.3.
Вы использовали комбинация клавиш SYSREQ, чтобы вызвать Soft-ICE, и ваша
система зависает или начинается на сброс содержимого экрана на ваш
принтер.
На некоторых клавиатурах, чтобы сгенерировать системный
запрос, вы должны одновременно нажать клавишу ALT и
клавишу PrtSc. Если вы случайно нажмете только клавишу
PrtSc, система попытается распечатать ваш экран. Если
принтер не подсоединен, ваша система зависнет. Чтобы
избежать этой проблемы, тщательно следите за тем, чтобы
нажать обе клавиши одновременно, или используйте команду
ALTKEY чтобы перейти на другую комбинацию клавиш.
Обратитесь к команде ALTKEY в разделе 5.8.
Ваш отладчик завис, когда вы дизассемблировали команды или редактировали
или выводили на экран содержимое памяти.
Вы обратились к адресу, который активизировал точку
останова Soft-ICE, и ACTION не было установлено на HERE.
Когда Soft-ICE доставит вас к месту, где вы хотите
поработать в памяти с вашим отладчиком, вы должны
отключить точки останова Soft-ICE. Если вы этого не
сделаете, вы можете случайно вызвать останов. Это
заставит ваш отладчик вызвать самому себя, что может
быть фатальной проблемой для отладчиков, не являющихся
реентерабельными.
После того, как вы вышли из вашего отладчика, система зависла.
У этой проблемы, конечно, может быть много причин, но
одной из возможных причин может быть то, что вы могли
забыть отключить точки останова Soft-ICE, и ACTION еще
установлено на вызов вашего отладчика. Когда срабатывает
точка останова, ACTION попытается вызвать ваш отладчик,
но ваш отладчик уже не загружен.
Вы установили точку останова для перехвата функций 87H,
88H или 89H прерывания 15H, а останов не происходит.
Soft-ICE производит внутреннюю обработку этих функций в
защищенном режиме, так что вы не можете устанавливать
точки останова на эти функции.
Ваша программа не реагирует на нажатия клавиш, но клавиатура еще активна.
Могла быть логически нажата клавиша SHIFT.
Попробуйте
понажимать и отпускать каждую клавишу SHIFT, CTRL и ALT.
Soft-ICE некорректно восстанавливает ваш графический экран.
У Soft-ICE есть улучшенный режим виртуализации видео,
который может виртуализировать много специальных
графических режимов. Включите этот режим, введя WATCHV ON.
См. описание команды WATCHV для больших подробностей.
Для несовместимых видеоконтроллеров и определенных
неизвестных режимов вам может быть придется использовать
альтернативный монитор. См. команду ALTSCR.
Машина блокируется, когда вы находитесь в Soft-ICE или перемещаете окно
Soft-ICE.
У Soft-ICE на некоторых клавиатурах есть проблемы
с таймером. Используйте выражение NOLEDS в S-ICE.DAT.
Это предотвратит посылку Soft-ICE'ом на клавиатур
команд LED.