共享内存密钥溢出
我正在使用第三方库,它使用C#DLL访问资源,然后使用内存映射到C ++运行库。 该第三方是SkypeKit,不再处于开发阶段。
突然之间,我收到了一个异常(应用程序运行了几天) "Shared Memory Key Overflow"
。 堆栈跟踪没有提供任何我的例程,以便我可以在发生的情况下捕获它,并在运行中对其进行修复,而且我目前正在将其作为App代码作为最终方法来捕获异常并正常恢复应用程序。
有没有办法处理这种内存问题,当它是在我的代码之外引起的,或者有更多的方法来分析它以找出它发生的原因?
干杯。
堆栈跟踪
6/12 / 2014-6:47:54下午:DEBUG:堆栈traceSystem.Exception:共享内存密钥溢出。 内存不希望被共享。 SkypeKit.SharedMemoryChannel.CreateMapping(UInt32大小)在SkypeKit.FrameTransport..ctor()在SkypeKit.SktVideoRenderer.Start()在SkypeKit.SktVideoRenderer.TimerTick(对象发件人,EventArgs e)
在System.Windows.Threading.DispatcherTimer.FireTick(对象未使用)
在System.Windows的MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source,Delegate method,Object args,Int32 numArgs,Delegate catchHandler)上的System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate回调,Object args,Int32 numArgs) .Threading.Dispatcher.WrappedInvoke(委托回调,对象args,Int32 numArgs,委托catchHandler)在System.Windows.Threading.DispatcherOperation.InvokeImpl()在System.Threading.ExecutionContext.runTryCode(对象userData)在System.Runtime.CompilerServices。在System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback callback,Object)上System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback回调,Object state,Boolean ignoreSyncCtx)上的RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code,CleanupCode backoutCode,Object userData)状态)在System.Windows.Threading.DispatcherOperation.Invoke()在System.Windows.Threading.Dispatcher.ProcessQu EUE()在System.Windows.Threading.Dispatcher.WndProcHook(IntPtr的HWND,MSG的Int32,IntPtr的wParam中,IntPtr的lParam的,布尔逻辑处理)在MS.Win32.HwndWrapper.WndProc(IntPtr的HWND,MSG的Int32,IntPtr的wParam中,IntPtr的lParam参数布尔&处理)在MS.Win32.HwndSubclass.DispatcherCallbackOperation(对象o)在System.Windows.Threading.ExceptionWrapper.InternalRealCall(委托回调,对象args,Int32 numArgs)在MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(对象源代码,委托在System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority优先级,TimeSpan超时,System.Windows.Threading.Dispatcher.WrappedInvoke(代表回调,Object args,Int32 numArgs,Delegate catchHandler)方法,Object args,Int32 numArgs,Delegate catchHandler) ,System.Windows.Threading上的MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG&msg)处的MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd,Int32 msg,IntPtr wParam,IntPtr lParam)中的委托方法,对象参数,Int32 numArgs)。配送费 System.Windows.EventRoute.InvokeHandlersImpl上的System.Windows.Window.ShowDialog()上的System.Windows.Window.ShowHelper(Object booleanBox)上的cher.PushFrameImpl(DispatcherFrame框架)位于A.c8b9966635edfd27b3cf3481492785b16.Configurator_Click(Object sender,RoutedEventArgs e) (System.Windows.Controls.Button.OnClick())上的System.Windows.UIElement.RaiseEventImpl(DependencyObject sender,RoutedEventArgs args)(Object source,RoutedEventArgs args,Boolean reRaised)
在System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)上System.Windows.RoutedEventArgs.InvokeHandler(委托处理程序,对象目标)在System.Windows.EventRoute.InvokeHandlersImpl(对象源,RoutedEventArgs指定参数时,布尔再加注)在System.Windows.UIElement.ReRaiseEventAs(DependencyObject的发件人,RoutedEventArgs指定参数时,RoutedEvent newEvent)在System.Windows.RoutedEventArgs.InvokeHandler(委托处理程序,对象目标)在System.Windows.EventRoute.InvokeHandlersImpl(对象源,RoutedEventArgs指定参数时,布尔再加注)在System.Windows.UIElement.RaiseEventImpl(DependencyObject的发件人,RoutedEventArgs参数)在System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs参数)在System.Windows.Input.InputManager.ProcessStagingArea()在System.Windows.Input.InputProviderSite.ReportInput( InputReport inputReport)在System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd,InputMode模式,Int32时间戳,RawMouseActions操作, INT32的x,INT32 Y,INT32轮)在System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr的HWND,WindowMessage味精,IntPtr的wParam中,IntPtr的lParam的,布尔逻辑处理)在System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr的HWND,INT32 MSG,IntPtr的wParam中,IntPtr的lParam的,布尔逻辑处理)在MS.Win32.HwndWrapper.WndProc(IntPtr的HWND,MSG的Int32,IntPtr的wParam中,IntPtr的lParam的,在系统在MS.Win32.HwndSubclass.DispatcherCallbackOperation布尔逻辑处理)(对象O)。 System.Windows.Threading处的MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source,Delegate method,Object args,Int32 numArgs,Delegate catchHandler)上的Windows.Threading.ExceptionWrapper.InternalRealCall(委托回调,Object args,Int32 numArgs) MS.Win32.Hw上的System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority优先级,TimeSpan超时,委托方法,Object args,Int32 numArgs)上的Dispatcher.WrappedInvoke(委托回调,Object args,Int32 numArgs,Delegate catchHandler) ndSubclass.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.Window.ShowHelper (Object,CallSite)上的System.Dynamic.UpdateDelegates.UpdateAndExecute1 [T0,TRet](CallSite站点,T0 arg0)处的System.Windows.Window.ShowDialog()处的CallSite.Target(Closure,CallSite,Object) ,Object)at A.c7f72f7dfd341bf9a74e5c8753c372d7b.OnStartup(StartupEventArgs e)