Контекст потока

Тема в разделе "WASM.BEGINNERS", создана пользователем SnugForce, 16 авг 2005.

  1. SnugForce

    SnugForce New Member

    Публикаций:
    0
    Регистрация:
    2 май 2005
    Сообщения:
    373
    Адрес:
    Из домУ
    Наткнулся читая про SEH...

    Собственно и сам вопрос - Какие регистры и для чего использует поток? И зачем функции изменяющие и читающие контекст потока?
     
  2. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    SnugForce

    > "Какие регистры и для чего использует поток?"

    Странный однако вопрос ;)

    Поток это кусок исполняемой программы и реально он использует те регистры, которые в этом куске программы явно или неявно используются. Но потенциально исполняемому потоку принадлежат все доступные (в соответсвии с уровнем привелегий) регистры процессора, точнее сказать их содержимое. Например, если поток не использует регистры FPU\MMX или XMM - их содержимое все равно закреплено за потоком и копируется в структуру CONTEXT. А сама эта структура нужна для сохранения состояния потока при переключении контекстов и обработки исключений. Например, при переключении с потока 1 на поток 2 состояние всех регистров потока 1 копируется в его структуру CONTEXT, а при возобновлении его исполнения регистры процессора восстанавливаются из этой структуры и код продолжается с того места на котором был прерван.

    Зачем нужно читать и изменять CONTEXT ? А как по твоему отладчик показывает и позволяет изменять содержимое регистров подопытной проги ;)
     
  3. SnugForce

    SnugForce New Member

    Публикаций:
    0
    Регистрация:
    2 май 2005
    Сообщения:
    373
    Адрес:
    Из домУ
    аа ну понятно. Спасибо!