public void new_threadstate(DkmThread thread, ulong frameBase, ulong vframe) { var process = thread.Process; var cppEval = new CppExpressionEvaluator(thread, frameBase, vframe); // Addressing this local by name does not work for release builds, so read the return value directly from the register instead. var tstate = new PyThreadState(thread.Process, cppEval.EvaluateReturnValueUInt64()); if (tstate == null) { return; } _owner.RegisterTracing(tstate); }
public unsafe void RegisterTracing(PyThreadState tstate) { tstate.use_tracing.Write(1); tstate.c_tracefunc.Write(_traceFunc.GetPointer()); _pyTracingPossible.Write(_pyTracingPossible.Read() + 1); _isTracing.Write(1); }