Бгг, вот ведь никогда не задумывался над одним вопросом. Допустим, отладчик ставит брейкпойнт - затертый байт сохраняет, вставляет 0xCC вместо него. Потом, когда отлавливаем соответствующее исключение - старый байт восстанавливаем, поправляем контекст, запускаем поток заново - но ведь брейкпоинт-то надо вернуть обратно ). Первое, что приходит в голову - поставить флаг трассировки, поймать уже это трассировочное исключение, и при его обработке вернуть бряк обратно). Или это как-то по-другому делается?
inviZ Да, точно так и делаетсо, вот именно поэтому бряк на подобный код: Code (Text): Int 0x2A pushfd Будет обнаружен по сохранённому флажку TF, аналогично как и трассировка. Альтернатива - любая однобайтная привилегированная инструкция(если в юзермоде).