Подскажите как можно остановить выполения кода в SoftIce'е если известно что текущая забрикпоинтованая строка приведет к синему экрану. Заранее спасибо.
Можно просто обойти этот участок кода (r eip = xxx), а если эксцепшен уже возник, но айс еще работает, то можно избежать синего экрана сделав r cs = 1B, но тогда система будет тормозить и глючить, но это позволит сохранить открытые файлы. А лучше перед каждой пробой запускать Sync от Four-F.
Ms Rem Про сброс кэш написал Four-F Если Вынь 98 или 95, то кажется прерывание программы в Айсе exit. В NT Айс говорит, что не может так сделать под Win32. Или попробуй код вогнать в секцию try-finaly. Можно, редко правда получается, в Айсе "faults on" мне помогало Айс выскакивал на команде что-то вроде Код (Text): xor eax, eax mov eax, [eax]; <--- )) Мне удавалось переставить/модифицировать счетчик PC как писал уважаемый Ms Rem, или просто забить их nop-ами.
При отладке обычно так и делаю, но к сожалению не всегда помогает, так как эксцепшены в NonPagedPool не отлавливаются. Для отладки еще полезно будет перед чтением сомнительного участка памяти вставить MmIsAddressValid. Но к сожалению 100% способа от синих экранов не существует, поэтому приходится иногда перезагружаться