Трассировка в SIce

Тема в разделе "WASM.WIN32", создана пользователем VooDooo, 15 фев 2006.

  1. VooDooo

    VooDooo New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2005
    Сообщения:
    30
    Адрес:
    Russia
    Не пойму как SIce работает с исключениями. Стоя на команде, которая даст 100% страничный сбой нажимаю трассировать. Смотрю по IDT попасть должны были куда то в ntoskrnl а на самом деле мы уже в ntdll в UserMode ExceptionDispetcher. Я понимаю почему отладчики 3-го кольца проскакивают привилегированный код, но вот что происходит с SI я не пойму. Может я не знаю каких-то технических тонкостей работы процессора, хотя мне кажется, что отладчик делает это умышленно. Зачем???
     
  2. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    VooDooo

    Не буду претендовать на достаточно близкую передачу текста на английском (на сайте SoftICE), но эти ребята похоже хотят заработать на своем отладчике, а для этого пользуются услугами и технической документацией Microsoft, и подписали акт о неразглашении или что-то в этом роде. Кроме того SoftICE от версии к версии становиться более "дружелюбной" к пользователю, и додумывает за него, даже вопреки его задачам.

    Конкретно по твоему случаю я использую bpint 0E или bpint 0D, а на комманде вызывающей исключение нажимаю F5 а не F8, и действительно попадаю в ntoskrnl. !!!NB!!! в режим трасировки в SoftICE сильно отличается от режима реального выполнения, (это связанно с невозможностью быстро выводить инфо на экран на слабых машинах, и отсутсвием эмуляции TSC), потому не все инструкции возможно выполнить в режиме трассировки так же как и в реальном режиме.
     
  3. VooDooo

    VooDooo New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2005
    Сообщения:
    30
    Адрес:
    Russia
    PROFi

    Спасибо, да так и есть. Я ведь ставил бряк на 14-ом прерывании, тока нажимал не F5, а F8. Видимо на самом деле SIce предсказывает прерывание и толи ставит бряк в ntdll, толи сам обрабатывает прерывание и потом уже переходит туда не непосредственно. Хочется развить эту тему, интересно знать как работает сайс изнутри так сказать, где бы об этом почитать?

    P.S. Извините еще такой вопросик как у кого настроен в сайсе показ стека, как сделать, чтоб он по-человечески выводился столбиком DWORD'ов как в других отладчиках???
     
  4. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    VooDooo

    Извините еще такой вопросик как у кого настроен в сайсе показ стека, как сделать, чтоб он по-человечески выводился столбиком DWORD'ов как в других отладчиках???

    так например: ed esp

    если нужно отобразить содержимое по адресу в стеке например esp+4, то так: ed *(esp+4)

    А вообще я SoftICE уже использую редко (использую свой отладчик). Раньше изучал внутренности SoftICE, но .. чесно сказать - технологии используемые отладчиком меня не впечатлили БЕЗДАРНО!!! Кроме того даже в последней верии не используются громадные возможности отладки предоставляемые процессором Pentium 3 и выше. Потому SoftICE для изучения CPU подходит только на начальных этапах.
     
  5. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    VooDooo

    Извеняюсь но почитать IDAW.exe ntice.sys :)
     
  6. VooDooo

    VooDooo New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2005
    Сообщения:
    30
    Адрес:
    Russia
    Спасибо еще раз, пожалуй так и сделаю =)