Как реализовать повторяющуюся точку останова, используя прерывание отладчика?

Я разрабатываю отладчик (Win32 c ++), который присоединяется к процессу и устанавливает в нем точку останова, заменяя первый байт определенной команды на 0xCC, а затем обрабатывая событие отладчика. Для очистки BP я уменьшаю EIP и восстанавливаю байт 0xCC с оригиналом.

Как мне реализовать повторяющийся BP, то есть несколько раз останавливать выполнение программы по определенной команде, пока не будет выполнено какое-либо условие?

Я попытался установить BP для следующей команды во время обработки первого попадания, очистить текущий BP, затем подождать, пока не будет достигнут нижний BP, и сбросить BP выше него, но это кажется очень неуклюжим. Есть ли лучший способ сделать это?

Также необходимо очищать кэш процессора каждый раз, когда я устанавливаю или очищаю БП (в настоящее время я делаю это)?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]