Функция 69 - отладка.
Процесс может загрузить другой процесс как отлаживаемый установкой
соответствующего бита при вызове подфункции 7 функции 70.
У процесса может быть только один отладчик; один процесс может
отлаживать несколько разных. Система уведомляет отладчик о событиях,
происходящих с отлаживаемым процессом. Сообщения записываются в буфер,
определённый подфункцией 0.
Формат сообщения:
- +0: dword: код сообщения
- +4: dword: PID отлаживаемого процесса
- +8: могут присутствовать дополнительные данные,
определяемые кодом сообщения
Коды сообщений:
- 1 = исключение
- дополнительно передаётся dword-номер исключения
- процесс приостановлен
- 2 = процесс завершился
- приходит при любом завершении: как через системную функцию -1,
так и при "убийстве" любым другим процессом
(в том числе самим отладчиком)
- 3 = отладочное исключение int 1 = #DB
- дополнительно передаётся dword-образ регистра DR6:
- биты 0-3: выполнено условие соответствующей точки останова
(установленной подфункцией 9)
- бит 14: исключение произошло из-за режима
пошаговой трассировки (установлен флаг TF)
- процесс приостановлен
При завершении отладчика прибиваются все отлаживаемые процессы.
Если отладчик этого не хочет, он должен предварительно отключиться
подфункцией 3.
Все подфункции применимы только к процессам/потокам, запущенным
из текущего функцией 70 с установленным флагом отладки.
Отладка многопоточных программ пока не поддерживается.
Полный список подфункций: