My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
Debugger  
Описание встроенного отладчика.
Featured
Updated Aug 19, 2012 by nzeemin

Встроенный отладчик

То что отличает наш эмулятор от других, и может быть именно то благодаря чему мы достигли большого прогресса -- наш встроенный отладчик. Для перехода в отладчик выберите команду Debug > Debug Views.

Снимок в полном размере

Слева вверху -- экран УКНЦ. Слева внизу -- отладочная консоль, в которой можно вводить команды; краткий список команд выдается по команде h. Справа вверху -- окно состояния текущего процессора: вверху в боксе его регистры, справа от них содержимое стека, ниже дизассемблированный блок возле адреса PC; правее вверху -- состояние портов, внизу -- состояние каналов обмена данными между процессорами. Справа внизу -- окно состояния памяти.

Красным цветом везде отмечены ячейки памяти, которые изменились после очередного шага или прогона. Перед шагом/запуском сохраняется состояние всей памяти и регистров процессоров, что позволяет о каждой ячейке сказать, изменилась ли она.

Команды отладочной консоли

r -- показать содержимое регистров. r1 -- показать содержимое регистра R1. r1 1000 -- изменить значение регистра R1 на 1000.

m -- дамп памяти с текущего адреса. m1000 -- дамп памяти с адреса 1000. mr1 -- дамп памяти с адреса из регистра R1.

d1000 -- дизассемблировать несколько инструкций начиная с адреса 1000.

p -- переключение отладочных окон и консоли на другой процессор (ЦП -- ПП).

g -- пуск эмулятора, то же что команда Emulator > Run. g1000 -- поставить точку останова на адрес 1000 и пуск эмулятора.

s -- шаг отладчика для текущего процессора.

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

u -- сохранение дампа памяти текущего процессора в файл.

c -- очистка лога отладочной консоли

Субтитры

В окне дизассемблера есть возможность загрузки "субтитров" -- подготовленного текста с комментариями к дизассемблированному коду. Для загрузки субтитров нужно щёлкнуть в окно дизассемблера и нажать клавишу 's'.

Пример текста субтитров:

; П/п поиска пилот-тона перед заголовком
130060: MTPS	#200		; Запретить прерывания
130064: MOV	23314$,R2	; R2 = число перепадов уровня при поиске загол.
130070: MOV	R5,R4		; R4 = длина предыдущего интервала
130072: CALL	130636$		; Проверка нажатия "СТОП"
130076:	BIT	#40,@#177710	; Перепад произошел ?
130104:	BEQ	130072$		; Нет
130106:	MOV	@#177714,R5	; R5 = длина текущего интервала
130112: TST	@#177714	; Сбросить готовность таймера
130116:	BIT	#250,@#177710	; Готовность сброшена ?
130124:	BNE	130112$		; Нет
130126:	SUB	R5,R4		; Вычислить разность между длинами интервалов
130130:	BPL	130134$
130132:	NEG	R4
130134: CMP	R4,23322$	; Разброс длин в норме ?
130140:	BHI	130064$		; Нет
130142:	SOB	R2,130070$	; Цикл по R2
130144:	MOV	#10,R3
130150:	MTPS	#0
	RETURN

Sign in to add a comment
Powered by Google Project Hosting