Страницы: 1 .. 187 188 189 190 191 .. 282
Debug: g (go)
Выполнение загруженной программы. Запущенная без параметров подкоманда g начинает выполнение с текущего адреса в реестрах CS:IP.
Синтаксис
g [=адрес] [точки_останова]
Параметры
- адрес
- Задание адреса в памяти, с которого требуется начать выполнение программы.
- точки_останова
- Указание до 10 временных точек останова, которые могут быть заданы как часть подкоманды g.
- ?
- Вывод списка подкоманд debug.
Примечания
-
Задание правильных записей адреса
Адрес состоит из двух частей: первая содержит буквенное обозначение сегментного регистра или адрес сегмента из четырех цифр, а вторая содержит значение смещения. Адрес сегмента или сегментный регистр могут быть пропущены. По умолчанию для подкоманд a, g, l, t, u и w команды debug адрес сегмента содержится в регистре CS. Для других подкоманд по умолчанию используется сегмент DS. Все числовые значения при этом представлены в шестнадцатеричном формате. Между именем сегмента и значением смещения следует вставлять двоеточие. Следующие адреса являются допустимыми:
CS:0100
04BA:0100
-
Использование параметра адрес
Введите знак равенства (=) перед параметром адрес, чтобы отличить адрес от адресов точек останова (точки_останова).
-
Задание точек останова
Выполнение программы будет остановлено в первой встретившейся точке останова, независимо от расположения этой точки останова в списке параметра точки_останова. Debug.exe заменяет код, находящийся в точках останова, на инструкции прерывания.
Когда выполнение программы дошло до точки останова, Debug.exe восстанавливает код в точках останова и выводит на экран содержимое всех регистров, все флаги состояния и деассемблированную инструкцию, которая была выполнена последней. Debug.exe выводит те же сведения, которые получают при использовании полкоманды r (регистр) и указании адреса данной точки останова.
Если программа не остановлена ни в одной точке, Debug.exe не заменяет коды прерываний первоначальными инструкциями.
Точки останова могут быть установлены только по адресам, содержащим первый байт кода операции 8086 (opcode). Если установлено больше 10 точек останова, выводится следующее сообщение:
bp Error
-
Использование указателя на стек, задаваемый пользователем
Указатель на стек, задаваемый пользователем, должен быть допустимым, а емкость стека должна быть не менее 6 байт для подкоманды g. Для перехода к тестируемой программе в подкоманде g используется инструкция iret. Debug.exe устанавливает указатель на стек пользователя, помещает туда пользовательские флаги состояния, значение регистра кодового сегмента и указатель на текущую команду. (Если заданный пользователем стек неверен или имеет недостаточный объем, возможен сбой в операционной системе). Debug.exe записывает код прерывания (т. е. 0CCh) в указанные точки останова или адреса.
-
Перезапуск программы
Не перезапускайте программу при получении следующего сообщения:
Program terminated normally
Чтобы правильно запустить программу, перезагрузите ее с помощью подкоманд n (name) и l (load).
Примеры
Чтобы запустить текущую программу и выполнить ее до точки останова по адресу 7550 в сегменте CS, введите следующую команду.
gcs:7550
Debug.exe выведет на экран содержимое регистров и состояние флагов, а затем остановит подкоманду g.
Чтобы установить две точки останова, введите следующую команду:
gcs:7550, cs:8000
Если подкоманда g введена снова после остановки в точке останова, выполнение начнется с инструкции, следующей за точкой останова, а не с обычного адреса начала программы.
1 .. 187 188 189 190 191 .. 282