Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2012, 06:19   #1
goluzov
Форумчанин
 
Регистрация: 26.06.2010
Сообщений: 168
По умолчанию Vectored handler

объясните пожалста, почему по окончании обработки исключения, не восстанавливается флаг TF ???

Код:
   // CODE for Visual Studio. Console
     
    #include "stdafx.h"
    #include "windows.h"
     
    LONG NTAPI VectoredHandler(PEXCEPTION_POINTERS pExceptionInfo)
    {
     
         printf("Exception\n");
     
         return EXCEPTION_CONTINUE_EXECUTION;
     
    }
     
    int _tmain(int argc, _TCHAR* argv[])
    {
     
         AddVectoredExceptionHandler(1, VectoredHandler);
     
         // set TF flag
         _asm pushfd
         _asm pop eax
         _asm xor eax, 100h
         _asm push eax
         _asm popfd
     
         _asm mov eax, ebx // Any command. #1 Exception
         _asm mov eax, ebx // Any command. #2 No Exception (TF flag is unset!!)

         // я понимаю что обработчик специально снимает флаг трасировки чтобы в нем самом не выполнялись исключения. но ведь он после завершения должен его восстановить? почему он этого не делает
     
         while(1) {} // no exit
     
         return 0;
     
    }

Последний раз редактировалось goluzov; 15.04.2012 в 11:27.
goluzov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CEdit Dblclick handler nusik Общие вопросы C/C++ 0 09.07.2009 11:02