0

ElementHostを使用してWindowsフォームに埋め込まれたWPFユーザーコントロールを使用しているOutlookアドインに取り組んでいます。

このアプリは、ごく少数のマシンで断続的にクラッシュします。クラッシュ ダンプを分析した後、WPF レンダリング スレッドがこのクラッシュを引き起こしているようです。windbg のスタック トレースは次のようになります。

    FAULTING_IP: 
msvcr80!memcpy+5a
7814500a f3a5            rep movs dword ptr es:[edi],dword ptr [esi]

EXCEPTION_RECORD:  ffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 7814500a (msvcr80!memcpy+0x0000005a)
   ExceptionCode: c0000005 (Access violation)
  ExceptionFlags: 00000000
NumberParameters: 2
   Parameter[0]: 00000001
   Parameter[1]: ab386000
Attempt to write to address ab386000

FAULTING_THREAD:  00001024

PRIMARY_PROBLEM_CLASS:  STRING_DEREFERENCE

BUGCHECK_STR:  APPLICATION_FAULT_STRING_DEREFERENCE_INVALID_POINTER_WRITE

LAST_CONTROL_TRANSFER:  from 5404fa9b to 7814500a

STACK_TEXT:  
2206f834 5404fa9b ab386000 261b80c0 00000080 msvcr80!memcpy+0x5a
2206f8c8 540503ee 0102e810 00000006 00000002 wpfgfx_v0300!CD3DDeviceLevel1::DrawPrimitiveUP+0x313
2206f8cc 0102e810 00000006 00000002 261b80c0 wpfgfx_v0300!CD3DDeviceLevel1::FlushBufferFan+0x1f
WARNING: Frame IP not in any known module. Following frames may be wrong.
2206f914 5408788b 00000000 261b80c0 00000000 0x102e810
2206f990 540878ef 2602e810 00000016 2602eb90 wpfgfx_v0300!CD3DDeviceLevel1::TestRenderTargetFormat+0x21e
2206f9b0 54087bd0 00000016 2602eb90 2206fbb4 wpfgfx_v0300!CD3DDeviceLevel1::CheckRenderTargetFormat+0x5b
2206fad4 54086c70 541870d0 26047da8 00000000 wpfgfx_v0300!CD3DDeviceManager::CreateNewDevice+0x2c3
2206fbe0 5401f473 541870d0 26047da8 000804e2 wpfgfx_v0300!CD3DDeviceManager::GetD3DDeviceAndPresentParams+0x1c1
2206fc58 5401efd6 26047da8 000804e2 00000000 wpfgfx_v0300!CHwDisplayRenderTarget::Create+0x39
2206fd98 5401f1b6 26047da8 000804e2 00000000 wpfgfx_v0300!CDesktopRenderTarget::Init+0x210
2206fdbc 5401f290 26047da8 000804e2 00000000 wpfgfx_v0300!CDesktopRenderTarget::Create+0xfa
2206fdf8 5401f339 0020cc18 26047da8 000804e2 wpfgfx_v0300!CMILFactory::CreateDesktopRenderTarget+0xc5
2206fe30 5400becc 00000000 0b8c2858 00000000 wpfgfx_v0300!CSlaveHWndRenderTarget::EnsureRenderTargetInternal+0xef
2206febc 5400be78 2206fedb 0b8b62a4 2206ff6b wpfgfx_v0300!CSlaveHWndRenderTarget::Render+0x17
2206fedc 54007523 2206ff6b 0b8b6280 00000000 wpfgfx_v0300!CRenderTargetManager::Render+0x2e
2206fef4 540075d6 2206ff6b 0b8c2730 0b8b6288 wpfgfx_v0300!CComposition::Render+0x21
2206ff58 54007667 2206ff6b 0b8b6288 008b6288 wpfgfx_v0300!CComposition::ProcessComposition+0xf3
2206ff6c 540076a2 2206ff87 00000001 0b8c2730 wpfgfx_v0300!CComposition::Compose+0x3e
2206ff88 5400717b 0b8c2730 0b8c26d0 0b8b6288 wpfgfx_v0300!CPartitionThread::RenderPartition+0x1c
2206ff9c 5400b68e 79e820a6 0000000d 0b8c2730 wpfgfx_v0300!CPartitionThread::Run+0x48
2206ffb4 7c80b729 0b8c2730 79e820a6 0000000d wpfgfx_v0300!CPartitionThread::ThreadMain+0x1e
2206ffec 00000000 5400b670 0b8c2730 00000000 kernel32!BaseThreadStart+0x37
4

1 に答える 1

1

この問題は、ビデオ ドライバーの問題が原因です。最新の(安定した)ビデオ ドライバをインストールすると、問題が解決するはずです。

これを解決する別の方法は、ハードウェア レンダリングを無効にすることです。

このスレッドの詳細 http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/684b550f-80b4-4fe4-8cd2-b04f58dc50a5

于 2010-09-18T18:51:16.680 に答える