Ejemplo n.º 1
0
            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);
            }
Ejemplo n.º 2
0
 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);
 }