diff --git a/TitanEngine/Global.Engine.Context.cpp b/TitanEngine/Global.Engine.Context.cpp index 8b9cc40..424caa0 100644 --- a/TitanEngine/Global.Engine.Context.cpp +++ b/TitanEngine/Global.Engine.Context.cpp @@ -113,7 +113,7 @@ bool _SetFullContextDataEx(HANDLE hActiveThread, TITAN_ENGINE_CONTEXT_t* titcont return returnf; } -bool _GetFullContextDataEx(HANDLE hActiveThread, TITAN_ENGINE_CONTEXT_t* titcontext) +bool _GetFullContextDataEx(HANDLE hActiveThread, TITAN_ENGINE_CONTEXT_t* titcontext, bool avx) { CONTEXT DBGContext; memset(&DBGContext, 0, sizeof(CONTEXT)); @@ -203,7 +203,8 @@ bool _GetFullContextDataEx(HANDLE hActiveThread, TITAN_ENGINE_CONTEXT_t* titcont memcpy(&(titcontext->XmmRegisters[i]), & DBGContext.ExtendedRegisters[(10 + i) * 16], 16); #endif - GetAVXContext(hActiveThread, titcontext); + if(avx) + GetAVXContext(hActiveThread, titcontext); return true; } diff --git a/TitanEngine/Global.Engine.Context.h b/TitanEngine/Global.Engine.Context.h index cd27fb6..b4ad9fd 100644 --- a/TitanEngine/Global.Engine.Context.h +++ b/TitanEngine/Global.Engine.Context.h @@ -25,7 +25,7 @@ extern LOCATEXSTATEFEATURE _LocateXStateFeature; extern SETXSTATEFEATURESMASK _SetXStateFeaturesMask; bool _SetFullContextDataEx(HANDLE hActiveThread, TITAN_ENGINE_CONTEXT_t* titcontext, bool AVX_PRIORITY); -bool _GetFullContextDataEx(HANDLE hActiveThread, TITAN_ENGINE_CONTEXT_t* titcontext); +bool _GetFullContextDataEx(HANDLE hActiveThread, TITAN_ENGINE_CONTEXT_t* titcontext, bool avx); bool InitXState(void); #endif //_GLOBAL_ENGINE_CONTEXT_H \ No newline at end of file diff --git a/TitanEngine/TitanEngine.Debugger.Context.cpp b/TitanEngine/TitanEngine.Debugger.Context.cpp index f0c14c7..951101c 100644 --- a/TitanEngine/TitanEngine.Debugger.Context.cpp +++ b/TitanEngine/TitanEngine.Debugger.Context.cpp @@ -85,7 +85,7 @@ __declspec(dllexport) bool TITCALL GetFullContextDataEx(HANDLE hActiveThread, TI if(SuspendThread(hActiveThread) == (DWORD) - 1) return false; - returnf = _GetFullContextDataEx(hActiveThread, titcontext); + returnf = _GetFullContextDataEx(hActiveThread, titcontext, true); ResumeThread(hActiveThread); @@ -102,7 +102,7 @@ __declspec(dllexport) ULONG_PTR TITCALL GetContextDataEx(HANDLE hActiveThread, D memset(&titcontext, 0, sizeof(titcontext)); - if(! _GetFullContextDataEx(hActiveThread, & titcontext)) + if(! _GetFullContextDataEx(hActiveThread, & titcontext, false)) { ResumeThread(hActiveThread); return false; @@ -397,7 +397,7 @@ __declspec(dllexport) bool TITCALL SetContextDataEx(HANDLE hActiveThread, DWORD memset(&titcontext, 0, sizeof(titcontext)); - if(! _GetFullContextDataEx(hActiveThread, & titcontext)) + if(! _GetFullContextDataEx(hActiveThread, & titcontext, IndexOfRegister >= UE_MXCSR)) { ResumeThread(hActiveThread); return false;