Программа перехватывает прерывания int 3 и int 2. ставит свой обработчик. Меня интересует что передаётся в стеке когда прерывание произошло. И как можно отлаживать это. Я ставлю аппаратный бряк но остановки почему то не происходит. Что можно мочитать по этом. А то даже не знаю какие ключевые слова в поиск вводить
IRET-фрейм передаётся. Сохраняется среда, при смене CPL сохраняется транзитный стек(Ss:Esp), V86 контекст(если мод соответствующий) и состояние(Cs:Eip и EFlags): Eip - Cs - EFlags - Esp - Ss. Intel® 64 and IA-32 Architectures Software Developer’s Manual v.3A, 5.12.1
Aids Я понимаю, как это стек выглядит в обработчик исключения, но как вы отладки обработчика INT 1? Я всегда сталкиваются BSOD при установке точки останова (б.п. или BA) на функцию обработчика спасибо!
Aids Состояние стека зависит от типа прерывания, а также зависит от того выполняется процесс vm86 или нет (очень противная бяка) . Читай 5 главу 3 тома руководства программиста от Intel. Бряк на обработчик вы не поставите. Так как при входе в обработчик прерывания маскируются, за исключением NMI. Но если пропатчить обработчик прерывания и демаскировать прерывания, то можно будет отлаживать прерывания. Правда чем это закончится ...