Сегмент состояния задачи

Тема в разделе "WASM.OS.DEVEL", создана пользователем Barbos, 10 янв 2008.

  1. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    В том и проблема что читал. #GP прерывание защиты. И оно помимо переключения задачи вызывается по другим ошибкам.
    Теперь вопрос как узнать что оно произошло из-зи переключения задачи, ведь там нет кода ошибки.?
     
  2. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    abcd008
    Смотреть, где произошло, и разбираться. Если оно должно происходить "по штату", то можно, конечно, зашить адрес, где оно происходит, сравнивать в обработчике исключения, и если адрес именно этот самый, предпринимать необходимые действия, ну а если в другом месте, тогда уже обрабатывать как настоящую ошибку.
     
  3. defaultplayer

    defaultplayer New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2006
    Сообщения:
    214
    abcd008
    у #GP есть код ошибки - селектор дескриптора, использование которого вызвало ошибку, его вытянуть из стека и смотреть какой тип у дескриптора. если TSS значит ошибка общей защиты по переключению задачи, наверно так.
     
  4. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    на счет селектора ты прав, стоит проверить. а в x64 он 64 битный или как раньше 32.
    скинте формат если есть.
     
  5. defaultplayer

    defaultplayer New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2006
    Сообщения:
    214
    abcd008
    селектор вообще-то 16-бит, если имелся ввиду дескриптор то в x64 он 64 битный. код ошибки 32-битный или 64 в х64, формат можно глянуть в интел мануалах, том 3-А раздел 5-13.