I m facing weird problem while running regression tests on my WPF
Application.
I m getting AccessViolationException with different stacktraces each
time.
First :
Message :Attempted to read or write protected memory. This is often an
indication that other memory is corrupt.
StackTrace : at
MS.Win32.PresentationCore.UnsafeNativeMethods.MILUnknown.Release(IntPtr
pIUnkown)
at
MS.Win32.PresentationCore.UnsafeNativeMethods.MILUnknown.ReleaseInterface(IntPtr&
ptr)
at System.Windows.Media.SafeMILHandle.ReleaseHandle()
at System.Runtime.InteropServices.SafeHandle.InternalFinalize()
at System.Runtime.InteropServices.SafeHandle.Dispose(Boolean
disposing)
at System.Runtime.InteropServices.SafeHandle.Finalize()
Source
resentationCore
Type : System.AccessViolationException.
Second :
Message :Attempted to read or write protected memory. This is often an
indication that other memory is corrupt.
StackTrace : at
MS.Win32.PresentationCore.UnsafeNativeMethods.IMILBitmapEffect.GetOutput(SafeHandle
THIS_PTR, UInt32 uiIndex, SafeMILHandle pContext,
BitmapSourceSafeMILHandle& ppBitmapSource)
at System.Windows.Media.Effects.BitmapEffect.GetOutput(SafeHandle
unmanagedEffect, Int32 index, BitmapEffectRenderContext context)
at
System.Windows.Media.Effects.BitmapEffect.GetOutput(BitmapEffectInput
input)
at
System.Windows.Media.Effects.BitmapEffectState.GetEffectOutput(Visual
visual, RenderTargetBitmap& renderBitmap, Matrix worldTransform,
Rect windowClip, Matrix& finalTransform)
at
System.Windows.Media.Effects.BitmapEffectVisualState.RenderBitmapEffect(Visual
visual, Channel channel)
at
System.Windows.Media.Effects.BitmapEffectContent.ExecuteRealizationsUpdate()
at
System.Windows.Media.RealizationContext.RealizationUpdateSchedule.Execute()
at System.Windows.Media.MediaContext.Render(ICompositionTarget
resizedCompositionTarget)
at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object
resizedCompositionTarget)
at
System.Windows.Media.MediaContext.AnimatedRenderMessageHandler(Object
resizedCompositionTarget)
at
System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate
callback, Object args, Boolean isSingleParameter)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object
source, Delegate callback, Object args, Boolean isSingleParameter,
Delegate catchHandler)
at System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate
callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at
System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object
state)
at System.Threading.ExecutionContext.runTryCode(Object userData)
at
System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode
code, CleanupCode backoutCode, Object userData)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext
executionContext, ContextCallback callback, Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32
msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr
wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at
System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate
callback, Object args, Boolean isSingleParameter)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object
source, Delegate callback, Object args, Boolean isSingleParameter,
Delegate catchHandler)
at System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate
callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority
priority, TimeSpan timeout, Delegate method, Object args, Boolean
isSingleParameter)
at System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority
priority, Delegate method, Object arg)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg,
IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame
frame)
at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame
frame)
at System.Windows.Threading.Dispatcher.Run()
at System.Windows.Application.RunDispatcher(Object ignore)
at System.Windows.Application.RunInternal(Window window)
at System.Windows.Application.Run(Window window)
at System.Windows.Application.Run()
at Main()
Source
resentationCore
Type
ystem.AccessViolationException
In Application Event Log I found following entries :
1. Dispatcher processing has been suspended, but messages are still
being processed.
2. Faulting application ****.exe, version 1.0.0.*, stamp 4c08d288,
faulting module wpfgfx_v0300.dll, version 3.0.6920.1427, stamp 488f3056,
debug? 0, fault address 0x0012ec36.
My Application uses Dispatcher from another thread, to change the values
of the controls , enable - disable those, change visibility etc., the
thred is run multiple times in a second.
Please let me know if anybody has faced this problem?