Ejemplo n.º 1
0
        /// <summary>
        /// Unwind unmanaged frames within an native chain.
        /// </summary>
        /// <param name="thread">thread containing an unmanged frame</param>
        /// <param name="context">context containing the current context of the stack frame</param>
        /// <param name="endValue">address of the next managed frame</param>
        /// <returns>enumeration of MDbgFrames for the native frames</returns>
        /// <remarks>ICorDebug stackwalking only unwinds managed chains. 
        /// A derived class can override this function to provide native stacktracing.</remarks>
        protected virtual IEnumerable<MDbgFrame> UnwindNativeFrames(MDbgThread thread, INativeContext context, long endValue)
        {
            // Base class can't unwind unmanaged chains. 
            // A derived class can override and provide native stack unwinding.
            // Use:
            // 1) chain.RegisterSet to get the starting context.
            // 2) chain.GetStackRange(out start, out end);   to get the stackrange to unwind to
            // 3) a native unwinder (such as DbgHelp.dll) to actually do the native stack unwinding.

            yield break;
        }
Ejemplo n.º 2
0
 public KhrMaintenance1(INativeContext ctx)
     : base(ctx)
 {
 }
Ejemplo n.º 3
0
 public ArbTransformFeedback3(INativeContext ctx)
     : base(ctx)
 {
 }
Ejemplo n.º 4
0
 public ArbSync(INativeContext ctx)
     : base(ctx)
 {
 }
 public HuaweiSubpassShading(INativeContext ctx)
     : base(ctx)
 {
 }
Ejemplo n.º 6
0
 public ExtLightTexture(INativeContext ctx)
     : base(ctx)
 {
 }
Ejemplo n.º 7
0
 public QComExtendedGet(INativeContext ctx)
     : base(ctx)
 {
 }
Ejemplo n.º 8
0
 public KhrVisibilityMask(INativeContext ctx)
     : base(ctx)
 {
 }
Ejemplo n.º 9
0
 public ArbES32Compatibility(INativeContext ctx)
     : base(ctx)
 {
 }
Ejemplo n.º 10
0
 public ArbTransformFeedbackInstanced(INativeContext ctx)
     : base(ctx)
 {
 }
Ejemplo n.º 11
0
 public ArbGeometryShader4(INativeContext ctx)
     : base(ctx)
 {
 }
Ejemplo n.º 12
0
 public ArbMapBufferRange(INativeContext ctx)
     : base(ctx)
 {
 }
 public ExtExtendedDynamicState2(INativeContext ctx)
     : base(ctx)
 {
 }
Ejemplo n.º 14
0
 public ArbCopyBuffer(INativeContext ctx)
     : base(ctx)
 {
 }
 /// <summary>
 /// Writes back the Thread Context of the thread that the CreateThreadNativeEvent was generated on
 /// </summary>
 /// <remarks>Setting a thread's context is very dangerous operation and must be used properly.</remarks>
 public void WriteContext(INativeContext context)
 {
     IntPtr hThread = IntPtr.Zero;
     try
     {
         hThread = NativeMethods.OpenThread(ThreadAccess.THREAD_ALL_ACCESS, true, (uint) ThreadId);
         using (IContextDirectAccessor w = context.OpenForDirectAccess())
         {
             // context buffer is now locked
             NativeMethods.SetThreadContext(hThread, w.RawBuffer);
         } // w is disposed, this unlocks the context buffer.
     }
     finally
     {
         if (hThread != IntPtr.Zero)
         {
             NativeMethods.CloseHandle(hThread);
         }
     }
 }
Ejemplo n.º 16
0
 public SgixAsync(INativeContext ctx)
     : base(ctx)
 {
 }
 // ClsComplaint version of SetThreadContext.
 // Caller must ensure that the context is valid, and for the right architecture.
 public void SetContext(CorDebugSetContextFlag flag, INativeContext context)
 {
     using (IContextDirectAccessor w = context.OpenForDirectAccess())
     { // context buffer is now locked
         SetThreadContext(flag, w.Size, w.RawBuffer);
     }
 }
Ejemplo n.º 18
0
 public ArbTextureMultisample(INativeContext ctx)
     : base(ctx)
 {
 }
 public NVConservativeRasterDilate(INativeContext ctx)
     : base(ctx)
 {
 }
Ejemplo n.º 20
0
 public ArbTextureStorage(INativeContext ctx)
     : base(ctx)
 {
 }
Ejemplo n.º 21
0
 public ArbVertexAttribBinding(INativeContext ctx)
     : base(ctx)
 {
 }
Ejemplo n.º 22
0
 public ExtLineRasterization(INativeContext ctx)
     : base(ctx)
 {
 }
Ejemplo n.º 23
0
 public AtiElementArray(INativeContext ctx)
     : base(ctx)
 {
 }
Ejemplo n.º 24
0
 public NvxConditionalRender(INativeContext ctx)
     : base(ctx)
 {
 }
Ejemplo n.º 25
0
 public ExtPolygonOffsetClamp(INativeContext ctx)
     : base(ctx)
 {
 }
Ejemplo n.º 26
0
 public AmdPerformanceMonitor(INativeContext ctx)
     : base(ctx)
 {
 }
Ejemplo n.º 27
0
 public NVMemoryObjectSparse(INativeContext ctx)
     : base(ctx)
 {
 }
Ejemplo n.º 28
0
 public NVMemoryAttachment(INativeContext ctx)
     : base(ctx)
 {
 }
 public ArbComputeShader(INativeContext ctx)
     : base(ctx)
 {
 }
Ejemplo n.º 30
0
 public NVInstancedArrays(INativeContext ctx)
     : base(ctx)
 {
 }
 /// <summary>
 /// copy the current context into the existing context buffer. Useful to avoid allocating a new context.
 /// </summary>
 /// <param name="context">already allocated context buffer</param>
 public void GetCurrentContext(INativeContext context)
 {
     Process.GetThreadContext(ThreadId, context);
 }
Ejemplo n.º 32
0
 /// <inheritdoc cref="ExtensionBase" />
 protected Enumeration(INativeContext ctx)
     : base(ctx)
 {
 }
        // ClsComplaint version of GetThreadContext.
        // Caller must ensure that the context is valid, and for the right architecture.
        public void GetContext(INativeContext context)
        {
            using (IContextDirectAccessor w = context.OpenForDirectAccess())
            { // context buffer is now locked        

                // We initialize to a HUGE number so that we make sure GetThreadContext is updating the size variable.  If it doesn't,
                // then we will hit the assert statement below.
                int size = Int32.MaxValue;
                this.GetThreadContext((ContextFlags)context.Flags,w.Size, out size, w.RawBuffer);

                // We should only assert when the buffer is insufficient.  Since the runtime only keeps track of CONTEXT_CONTROL and CONTEXT_INTEGER
                // we will expect to create a larger buffer than absolutely necessary.  The context buffer will be the size of a FULL machine
                // context.
                Debug.Assert(size <= w.Size, String.Format("Insufficient Buffer:  Expected {0} bytes, but received {1}",w.Size, size));
            }
        }
Ejemplo n.º 34
0
 public ArbTextureView(INativeContext ctx)
     : base(ctx)
 {
 }
 /* Set the INativeContext object for the given thread */
 public void SetThreadContext(int threadId, INativeContext context)
 {
     using (IContextDirectAccessor w = context.OpenForDirectAccess())
     {
         // context buffer is now locked        
         SetThreadContext(threadId, w.RawBuffer, w.Size);
     }
 }
 public ArbTextureBufferRange(INativeContext ctx)
     : base(ctx)
 {
 }