既定の入力システムがMicrosoft Office IME 2010でファイルの上書きをするとフリーズする
追加調査したので補足します。
(1)
セットアップ:
フリーズする:
フリーズしない:
(2)
セットアップ(1)から Windows と NVDA の言語設定を変えた場合:
フリーズする:
点字出力テーブル「日本語6点情報処理点字」に依存するかと思ったのですが、最後のケースで仮説が崩れました。
引き続き調べてみます。
さらに追加調査しました。
セットアップ:
この環境で、最初はフリーズしませんでしたが、もう一度上書きコピーするとフリーズしました。
1回試しただけでフリーズしないと判断してはいけないようです。
KGS ドライバーに依存する可能性は残っていますが、そのほかの日本語版独自処理(日本語点訳エンジンなど)には依存していないと言えそうです。
NVDA をデバッグビルドして windbg からリモートデバッグしてログをとりました。
大まかな手順 http://ja.nishimotz.com/nvdajp_scons?s[]=nvdajp&s[]=scons#%E3%83%87%E3%83%90%E3%83%83%E3%82%B0
落ちたときのスタックトレースを見ると BMユーティリティの KbdcUtil.dll が出てきます。
なんとなく KGS の常駐ソフトウェアと Microsoft Office IME 2010 の両方が影響しているように思われます。
デバッギを実行している環境が BM ユーティリティ 5.0 だったので、いずれ 5.0.1 にアップデートして再検討してみます。
もし BM ユーティリティが関係しているなら、以下の仮説がなりたちます:
Microsoft (R) Windows Debugger Version 6.12.0002.633 AMD64 Copyright (c) Microsoft Corporation. All rights reserved. Server started. Client can connect with any of these command lines 0: <debugger> -remote tcp:Port=9999,Server=PC-NISHI2011A PC-NISHI2012A\nishimotz (tcp 192.168.0.7:49645) connected at Tue Oct 08 10:16:26 2013 0:000> g ModLoad: 00000000`77910000 00000000`77a2f000 WOW64_IMAGE_SECTION ModLoad: 00000000`77530000 00000000`77640000 WOW64_IMAGE_SECTION ModLoad: 00000000`77910000 00000000`77a2f000 NOT_AN_IMAGE ModLoad: 00000000`77810000 00000000`7790a000 NOT_AN_IMAGE ModLoad: 00000000`77530000 00000000`77640000 C:\Windows\syswow64\kernel32.dll ModLoad: 00000000`756f0000 00000000`75737000 C:\Windows\syswow64\KERNELBASE.dll ModLoad: 00000000`773d0000 00000000`774d0000 C:\Windows\syswow64\USER32.dll ModLoad: 00000000`762d0000 00000000`76360000 C:\Windows\syswow64\GDI32.dll ModLoad: 00000000`774d0000 00000000`774da000 C:\Windows\syswow64\LPK.dll ModLoad: 00000000`75b10000 00000000`75bad000 C:\Windows\syswow64\USP10.dll ModLoad: 00000000`75990000 00000000`75a3c000 C:\Windows\syswow64\msvcrt.dll ModLoad: 00000000`758f0000 00000000`75990000 C:\Windows\syswow64\ADVAPI32.dll ModLoad: 00000000`77510000 00000000`77529000 C:\Windows\SysWOW64\sechost.dll ModLoad: 00000000`75bb0000 00000000`75ca0000 C:\Windows\syswow64\RPCRT4.dll ModLoad: 00000000`75630000 00000000`75690000 C:\Windows\syswow64\SspiCli.dll ModLoad: 00000000`75620000 00000000`7562c000 C:\Windows\syswow64\CRYPTBASE.dll ModLoad: 00000000`73ee0000 00000000`73f83000 C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_50934f2ebcb7eb57\MSVCR90.dll (500.754): WOW64 breakpoint - code 4000001f (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. ntdll32!LdrpDoDebuggerBreak+0x2c: 77cb103b cc int 3 0:000:x86> g ModLoad: 75880000 758e0000 C:\Windows\SysWOW64\IMM32.DLL ModLoad: 75740000 7580c000 C:\Windows\syswow64\MSCTF.dll ModLoad: 1e000000 1e261000 C:\work\nvda\nvdajp\dist\PYTHON27.DLL ModLoad: 76510000 7715a000 C:\Windows\syswow64\SHELL32.dll ModLoad: 75690000 756e7000 C:\Windows\syswow64\SHLWAPI.dll ModLoad: 1d1a0000 1d1b8000 C:\work\nvda\nvdajp\dist\_ctypes.pyd ModLoad: 763b0000 7650c000 C:\Windows\syswow64\ole32.dll ModLoad: 75d70000 75dff000 C:\Windows\syswow64\OLEAUT32.dll ModLoad: 10000000 1005b000 C:\work\nvda\nvdajp\dist\_hashlib.pyd ModLoad: 73db0000 73dc6000 C:\Windows\SysWOW64\CRYPTSP.dll ModLoad: 73d70000 73dab000 C:\Windows\SysWOW64\rsaenh.dll ModLoad: 00250000 00255000 C:\work\nvda\nvdajp\dist\winsound.pyd ModLoad: 74170000 741a2000 C:\Windows\SysWOW64\WINMM.dll ModLoad: 73600000 73680000 C:\Windows\SysWOW64\uxtheme.dll ModLoad: 00000000`70110000 00000000`70149000 C:\Windows\SysWOW64\MMDevAPI.DLL ModLoad: 00000000`70fd0000 00000000`710c5000 C:\Windows\SysWOW64\PROPSYS.dll ModLoad: 00000000`75540000 00000000`75570000 C:\Windows\SysWOW64\wdmaud.drv ModLoad: 00000000`75530000 00000000`75534000 C:\Windows\SysWOW64\ksuser.dll ModLoad: 00000000`75520000 00000000`75527000 C:\Windows\SysWOW64\AVRT.dll ModLoad: 00000000`76000000 00000000`7619d000 C:\Windows\syswow64\SETUPAPI.dll ModLoad: 00000000`75d40000 00000000`75d67000 C:\Windows\syswow64\CFGMGR32.dll ModLoad: 00000000`774f0000 00000000`77502000 C:\Windows\syswow64\DEVOBJ.dll ModLoad: 00000000`700d0000 00000000`70106000 C:\Windows\SysWOW64\AUDIOSES.DLL ModLoad: 00000000`75510000 00000000`75518000 C:\Windows\SysWOW64\msacm32.drv ModLoad: 00000000`754f0000 00000000`75504000 C:\Windows\SysWOW64\MSACM32.dll ModLoad: 00000000`754e0000 00000000`754e7000 C:\Windows\SysWOW64\midimap.dll ModLoad: 00000000`75e30000 00000000`75eb3000 C:\Windows\syswow64\CLBCatQ.DLL ModLoad: 00000000`73430000 00000000`73443000 C:\Windows\SysWOW64\dwmapi.dll ModLoad: 00000000`03800000 00000000`0380d000 C:\work\nvda\nvdajp\dist\_socket.pyd ModLoad: 00000000`75a40000 00000000`75a75000 C:\Windows\syswow64\WS2_32.dll ModLoad: 00000000`773c0000 00000000`773c6000 C:\Windows\syswow64\NSI.dll ModLoad: 00000000`03810000 00000000`038f0000 C:\work\nvda\nvdajp\dist\_ssl.pyd ModLoad: 00000000`039c0000 00000000`03a6a000 C:\work\nvda\nvdajp\dist\unicodedata.pyd ModLoad: 00000000`03910000 00000000`03932000 C:\work\nvda\nvdajp\dist\pyexpat.pyd ModLoad: 00000000`04310000 00000000`04403000 C:\work\nvda\nvdajp\dist\wx._core_.pyd ModLoad: 00000000`04410000 00000000`04554000 C:\work\nvda\nvdajp\dist\wxbase28uh_vc.dll ModLoad: 00000000`73680000 00000000`7370e000 C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_50934f2ebcb7eb57\MSVCP90.dll ModLoad: 00000000`03950000 00000000`03971000 C:\work\nvda\nvdajp\dist\wxbase28uh_net_vc.dll ModLoad: 00000000`74410000 00000000`74417000 C:\Windows\SysWOW64\WSOCK32.dll ModLoad: 00000000`04560000 00000000`0488f000 C:\work\nvda\nvdajp\dist\wxmsw28uh_core_vc.dll ModLoad: 00000000`75340000 00000000`754d0000 C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.18120_none_72d2e82386681b36\gdiplus.dll ModLoad: 00000000`75ca0000 00000000`75d1b000 C:\Windows\syswow64\COMDLG32.dll ModLoad: 00000000`739b0000 00000000`73b4e000 C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e6975e2bd6f2b2\COMCTL32.dll ModLoad: 00000000`73080000 00000000`730d1000 C:\Windows\SysWOW64\WINSPOOL.DRV ModLoad: 00000000`04890000 00000000`04947000 C:\work\nvda\nvdajp\dist\wxmsw28uh_adv_vc.dll ModLoad: 00000000`04950000 00000000`04a0a000 C:\work\nvda\nvdajp\dist\wx._gdi_.pyd ModLoad: 00000000`04c50000 00000000`04cf8000 C:\work\nvda\nvdajp\dist\wx._windows_.pyd ModLoad: 00000000`04a10000 00000000`04a89000 C:\work\nvda\nvdajp\dist\wxmsw28uh_html_vc.dll ModLoad: 00000000`04d00000 00000000`04df0000 C:\work\nvda\nvdajp\dist\wx._controls_.pyd ModLoad: 00000000`036c0000 00000000`03768000 C:\work\nvda\nvdajp\dist\wx._misc_.pyd ModLoad: 00000000`752e0000 00000000`75332000 C:\work\nvda\nvdajp\dist\liblouis.dll ModLoad: 00000000`752c0000 00000000`752db000 C:\Windows\SysWOW64\windowsAccessBridge-32.DLL ModLoad: 00000000`1e8f0000 00000000`1e8f8000 C:\work\nvda\nvdajp\dist\win32clipboard.pyd ModLoad: 00000000`1e7a0000 00000000`1e7be000 C:\work\nvda\nvdajp\dist\pywintypes27.dll ModLoad: 00000000`75260000 00000000`752c0000 C:\work\nvda\nvdajp\dist\lib\nvdaHelperLocal.dll ModLoad: 00000000`73d60000 00000000`73d6e000 C:\Windows\SysWOW64\RpcRtRemote.dll ModLoad: 00000000`70200000 00000000`7023c000 C:\Windows\SysWOW64\oleacc.dll ModLoad: 00000000`751d0000 00000000`7525c000 C:\Windows\SysWOW64\UIAutomationCore.dll ModLoad: 00000000`75ff0000 00000000`75ff5000 C:\Windows\syswow64\PSAPI.DLL ModLoad: 00000000`75110000 00000000`751cb000 C:\work\nvda\nvdajp\dist\lib\nvdaHelperRemote.dll ModLoad: 00000000`73ed0000 00000000`73ed9000 C:\Windows\SysWOW64\VERSION.dll ModLoad: 00000000`750e0000 00000000`7510e000 C:\work\nvda\nvdajp\dist\lib\IAccessible2Proxy.dll ModLoad: 00000000`75090000 00000000`750d2000 C:\work\nvda\nvdajp\dist\lib\minhook.dll ModLoad: 00000000`735b0000 00000000`735fc000 C:\Windows\SysWOW64\apphelp.dll ModLoad: 00000000`75040000 00000000`75082000 C:\work\nvda\nvdajp\dist\synthDrivers\jtalk\libopenjtalk.dll ModLoad: 00000000`6f340000 00000000`6f7e7000 C:\work\nvda\nvdajp\dist\synthDrivers\jtalk\libmecab.dll ModLoad: 00000000`06400000 00000000`0641a000 C:\work\nvda\nvdajp\dist\brailleDisplayDrivers\DirectBM.dll ModLoad: 00000000`74fd0000 00000000`75035000 C:\Program files (x86)\KGS\BMユーティリティWow64互換パック\KbdcUtil.dll ModLoad: 00000000`73c80000 00000000`73c8b000 C:\Windows\SysWOW64\profapi.dll ModLoad: 00000000`73e40000 00000000`73e61000 C:\Windows\SysWOW64\ntmarta.dll ModLoad: 00000000`76360000 00000000`763a5000 C:\Windows\syswow64\WLDAP32.dll ModLoad: 00000000`06460000 00000000`06470000 C:\Program files (x86)\KGS\BMユーティリティWow64互換パック\KbdcServUtil.dll ModLoad: 00000000`761a0000 00000000`762c3000 C:\Windows\SysWOW64\urlmon.dll ModLoad: 00000000`758e0000 00000000`758e4000 C:\Windows\syswow64\api-ms-win-downlevel-ole32-l1-1-0.dll ModLoad: 00000000`75810000 00000000`75814000 C:\Windows\syswow64\api-ms-win-downlevel-shlwapi-l1-1-0.dll ModLoad: 00000000`77be0000 00000000`77be5000 C:\Windows\syswow64\api-ms-win-downlevel-advapi32-l1-1-0.dll ModLoad: 00000000`77160000 00000000`77164000 C:\Windows\syswow64\api-ms-win-downlevel-user32-l1-1-0.dll ModLoad: 00000000`774e0000 00000000`774e4000 C:\Windows\syswow64\api-ms-win-downlevel-version-l1-1-0.dll ModLoad: 00000000`75d30000 00000000`75d33000 C:\Windows\syswow64\api-ms-win-downlevel-normaliz-l1-1-0.dll ModLoad: 00000000`75fe0000 00000000`75fe3000 C:\Windows\syswow64\normaliz.DLL ModLoad: 00000000`77170000 00000000`77385000 C:\Windows\syswow64\iertutil.dll ModLoad: 00000000`77640000 00000000`77803000 C:\Windows\syswow64\WININET.dll ModLoad: 00000000`73ec0000 00000000`73ec8000 C:\Windows\SysWOW64\Secur32.dll ModLoad: 00000000`73c60000 00000000`73c64000 C:\Windows\SysWOW64\api-ms-win-downlevel-advapi32-l2-1-0.dll ModLoad: 00000000`0b5d0000 00000000`0b604000 image00000000`0b5d0000 ModLoad: 00000000`74fc0000 00000000`74fc3000 C:\Windows\SysWOW64\sfc.dll ModLoad: 00000000`033f0000 00000000`03400000 C:\Windows\system32\sfc_os.DLL ModLoad: 00000000`033f0000 00000000`03400000 C:\Windows\system32\sfc_os.DLL ModLoad: 00000000`73210000 00000000`73324000 imejp.dll ModLoad: 00000000`73210000 00000000`73324000 C:\Windows\SysWOW64\imjp14.ime ModLoad: 00000000`730e0000 00000000`73202000 C:\Windows\SysWOW64\imjp14k.dll ModLoad: 00000000`0c530000 00000000`0c68c000 C:\Windows\SysWOW64\ole32.dll ModLoad: 00000000`70480000 00000000`7057d000 C:\PROGRA~2\COMMON~1\MICROS~1\IME14\IMEJP\IMJPAPI.DLL ModLoad: 00000000`70450000 00000000`7047a000 C:\Program Files (x86)\Common Files\Microsoft Shared\IME14\SHARED\IMJKAPI.DLL ModLoad: 00000000`70400000 00000000`70450000 C:\Program Files (x86)\Common Files\Microsoft Shared\IME14\IMEJP\IMJPPRED.DLL ModLoad: 00000000`0b2b0000 00000000`0b33c000 C:\Windows\SysWOW64\uiautomationcore.dll ModLoad: 00000000`74fc0000 00000000`74fc6000 C:\Windows\SysWOW64\OLEACCHOOKS.DLL ModLoad: 00000000`74f60000 00000000`74fbf000 C:\Windows\SysWOW64\SXS.DLL ModLoad: 00000000`74f10000 00000000`74f55000 C:\Program Files (x86)\Internet Explorer\ieproxy.dll ModLoad: 00000000`6fcf0000 00000000`6fcf4000 C:\Windows\SysWOW64\api-ms-win-downlevel-shlwapi-l2-1-0.dll ModLoad: 00000000`0b5d0000 00000000`0b60c000 C:\Windows\SysWOW64\oleacc.dll ModLoad: 00000000`6f2a0000 00000000`6f334000 C:\Windows\SysWOW64\msftedit.DLL ModLoad: 00000000`0ba40000 00000000`0baa0000 C:\work\nvda\nvdajp\dist\pythoncom27.dll ModLoad: 00000000`0cf70000 00000000`0d0cc000 C:\Windows\SysWOW64\ole32.dll ModLoad: 00000000`70240000 00000000`703fc000 C:\Program Files (x86)\Common Files\Microsoft Shared\IME14\IMEJP\IMJPTIP.DLL ModLoad: 00000000`70150000 00000000`701fa000 C:\PROGRA~2\COMMON~1\MICROS~1\IME14\SHARED\IMETIP.DLL ModLoad: 00000000`0cf70000 00000000`0d03c000 C:\Windows\SysWOW64\msctf.dll ModLoad: 00000000`0cf70000 00000000`0d03c000 C:\Windows\SysWOW64\msctf.dll ModLoad: 00000000`73330000 00000000`73348000 C:\PROGRA~2\COMMON~1\MICROS~1\IME14\SHARED\IMECFM.DLL ModLoad: 00000000`73350000 00000000`73356000 C:\Program Files (x86)\Common Files\Microsoft Shared\IME14\SHARED\IMECMPS.DLL ModLoad: 00000000`700b0000 00000000`700ca000 C:\Program Files (x86)\Common Files\Microsoft Shared\IME14\SHARED\IMESEARCHDLL.DLL ModLoad: 00000000`0b650000 00000000`0b671000 C:\work\nvda\nvdajp\dist\brailleDisplayDrivers\alvaw32.dll ModLoad: 00000000`74f00000 00000000`74f09000 C:\Windows\SysWOW64\HID.DLL ModLoad: 00000000`6f1f0000 00000000`6f2a0000 C:\Windows\SysWOW64\bthprops.cpl ModLoad: 00000000`77390000 00000000`773be000 C:\Windows\syswow64\WINTRUST.dll ModLoad: 00000000`75ec0000 00000000`75fe0000 C:\Windows\syswow64\CRYPT32.dll ModLoad: 00000000`75d20000 00000000`75d2c000 C:\Windows\syswow64\MSASN1.dll ModLoad: 00000000`69fc0000 00000000`69fe1000 C:\work\nvda\nvdajp\dist\brlapi.pyd ModLoad: 00000000`693c0000 00000000`693d7000 C:\work\nvda\nvdajp\dist\brlapi-0.5.dll ModLoad: 00000000`0d070000 00000000`0d0aa000 C:\work\nvda\nvdajp\dist\brailleDisplayDrivers\hims\HanSoneConnect.dll ModLoad: 00000000`0bbe0000 00000000`0bbf5000 C:\work\nvda\nvdajp\dist\brailleDisplayDrivers\lilli.dll ModLoad: 00000000`0d0b0000 00000000`0d0e9000 C:\work\nvda\nvdajp\dist\ftd2xx.DLL ModLoad: 00000000`0d100000 00000000`0d10c000 C:\work\nvda\nvdajp\dist\brailleDisplayDrivers\syncBraille\SyncBraille.dll ModLoad: 00000000`6f0d0000 00000000`6f1ec000 C:\Windows\SysWOW64\MFC42.DLL ModLoad: 00000000`6f040000 00000000`6f0cc000 C:\Windows\SysWOW64\ODBC32.dll ModLoad: 00000000`6f000000 00000000`6f038000 C:\Windows\SysWOW64\odbcint.dll ModLoad: 00000000`0de50000 00000000`0ea9a000 C:\Windows\SysWOW64\shell32.dll ModLoad: 00000000`0d6b0000 00000000`0d6e4000 image00000000`0d6b0000 ModLoad: 00000000`74ef0000 00000000`74ef3000 C:\Windows\SysWOW64\sfc.dll ModLoad: 00000000`0d6b0000 00000000`0d6c0000 C:\Windows\system32\sfc_os.DLL ModLoad: 00000000`0b250000 00000000`0b260000 C:\Windows\system32\sfc_os.DLL ModLoad: 00000000`73330000 00000000`73348000 C:\PROGRA~2\COMMON~1\MICROS~1\IME14\SHARED\IMECFM.DLL HEAP[nvda_noUIAccess.exe]: Invalid address specified to RtlSizeHeap( 005D0000, 00603CD8 ) (500.8b4): WOW64 breakpoint - code 4000001f (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. ntdll32!RtlpBreakPointHeap+0x23: 77ce0574 cc int 3 0:016:x86> kp ChildEBP RetAddr 0b8ff6bc 77ca2aba ntdll32!RtlpBreakPointHeap+0x23 0b8ff6d8 77ce1c01 ntdll32!RtlpValidateHeapEntry+0x16d 0b8ff720 77c99c89 ntdll32!RtlDebugSizeHeap+0x9f 0b8ff738 763f625c ntdll32!RtlSizeHeap+0x27 0b8ff74c 75d7443a ole32!CRetailMalloc_GetSize(struct IMalloc * pThis = 0x764f66bc, void * pv = 0x00603cd8)+0x21 [d:\w7rtm\com\ole32\com\class\memapi.cxx @ 710] 0b8ff770 75d73ea3 OLEAUT32!APP_DATA::FreeCachedMem+0x30 0b8ff78c 75d77803 OLEAUT32!SysFreeString+0x6b 0b8ff79c 75da433d OLEAUT32!BSTR_UserFree+0x19 0b8ff7b0 75be7af6 OLEAUT32!VARIANT_UserFree+0xe4 0b8ff7e8 75c6083e RPCRT4!NdrUserMarshalFree+0x37 0b8ff80c 75c6072a RPCRT4!NdrpFreeParams+0x145 0b8ff820 75c606e0 RPCRT4!NdrStubCall2+0x4eb 0b8ffc18 764ed7e6 RPCRT4!NdrStubCall2+0x42a 0b8ffc60 75d7ffd3 ole32!CStdStubBuffer_Invoke(struct IRpcStubBuffer * This = 0x0066f718, struct tagRPCOLEMESSAGE * prpcmsg = 0x006c2fd0, struct IRpcChannelBuffer * pRpcChannelBuffer = 0x0065b678)+0xb6 [d:\w7rtm\com\rpc\ndrole\stub.cxx @ 1590] 0b8ffc84 764ed876 OLEAUT32!CUnivStubWrapper::Invoke+0xcb 0b8ffccc 764eddd0 ole32!SyncStubInvoke(struct tagRPCOLEMESSAGE * pMsg = 0x006c2fd0, struct _GUID * riid = 0x0066b7e4 {40cd37d4-c756-4b0c-8c6f-bddfeeb13b50}, class CIDObject * pID = 0x00655d58, void * pVtableAddress = 0x04e6d0f8, struct IRpcChannelBuffer * pChnl = 0x0065b678, struct IRpcStubBuffer * pStub = 0x0066b600, unsigned long * pdwFault = 0x0b8ffe48)+0x3c [d:\w7rtm\com\ole32\com\dcomrem\channelb.cxx @ 1187] 0b8ffd18 76408a43 ole32!StubInvoke(struct tagRPCOLEMESSAGE * pMsg = 0x006c2fd0, class CStdIdentity * pStdID = 0x0066a400, struct IRpcStubBuffer * pStub = 0x0066b600, struct IRpcChannelBuffer * pChnl = 0x0065b678, struct tagIPIDEntry * pIPIDEntry = 0x80004021, unsigned long * pdwFault = 0x0b8ffe48)+0xb9 [d:\w7rtm\com\ole32\com\dcomrem\channelb.cxx @ 1396] 0b8ffdf4 76408938 ole32!CCtxComChnl::ContextInvoke(struct tagRPCOLEMESSAGE * pMessage = 0x00000000, struct IRpcStubBuffer * pStub = 0x0066b600, struct tagIPIDEntry * pIPIDEntry = 0x00613128, unsigned long * pdwFault = 0x0b8ffe48)+0xfa [d:\w7rtm\com\ole32\com\dcomrem\ctxchnl.cxx @ 1262] 0b8ffe10 764ea44c ole32!MTAInvoke(struct tagRPCOLEMESSAGE * pMsg = 0x006c2fd0, unsigned long CallCatIn = 1, struct IRpcStubBuffer * pStub = 0x0066b600, class IInternalChannelBuffer * pChnl = 0x0065b678, struct tagIPIDEntry * pIPIDEntry = 0x00613128, unsigned long * pdwFault = 0x0b8ffe48)+0x1a [d:\w7rtm\com\ole32\com\dcomrem\callctrl.cxx @ 2105] 0b8ffe40 764edb41 ole32!AppInvoke(class CMessageCall * pCall = 0xd0908070, class CRpcChannelBuffer * pChannel = 0x0065b678, struct IRpcStubBuffer * pStub = 0x0066b600, void * pv = 0x04e03418, void * pStubBuffer = 0x0db517b0, struct tagIPIDEntry * pIPIDEntry = 0x00613128, struct LocalThis * pLocalb = 0x0db517a8)+0xab [d:\w7rtm\com\ole32\com\dcomrem\channelb.cxx @ 1086] 0b8fff20 764ee1fd ole32!ComInvokeWithLockAndIPID(class CMessageCall * pCall = 0x006c2f78, struct tagIPIDEntry * pIPIDEntry = 0x00613128)+0x372 [d:\w7rtm\com\ole32\com\dcomrem\channelb.cxx @ 1724] 0b8fff48 76409367 ole32!ComInvoke(class CMessageCall * pCall = 0x006c2f78)+0xc5 [d:\w7rtm\com\ole32\com\dcomrem\channelb.cxx @ 1469] 0b8fff5c 763dcd48 ole32!ThreadDispatch(void * param = 0x006c2f78)+0x23 [d:\w7rtm\com\ole32\com\dcomrem\chancont.cxx @ 298] 0b8fff78 763dd87a ole32!CRpcThread::WorkerLoop(void)+0x26 [d:\w7rtm\com\ole32\com\dcomrem\threads.cxx @ 257] 0b8fff88 7754336a ole32!CRpcThreadCache::RpcWorkerThreadEntry(void * param = 0x006640d0)+0x16 [d:\w7rtm\com\ole32\com\dcomrem\threads.cxx @ 63] 0b8fff94 77c49f72 kernel32!BaseThreadInitThunk+0xe 0b8fffd4 77c49f45 ntdll32!__RtlUserThreadStart+0x70 0b8fffec 00000000 ntdll32!_RtlUserThreadStart+0x1b 0:016:x86> !findstack nvdaHelper *** WARNING: Unable to verify checksum for C:\work\nvda\nvdajp\dist\_ctypes.pyd Thread 006, 1 frame(s) match * 02 0000000005ebff88 000000007754336a nvdaHelperRemote!outprocMgrThreadFunc+0xe0 Thread 008, 1 frame(s) match * 05 00000000061fff88 000000007754336a nvdaHelperRemote!inprocMgrThreadFunc+0x723 *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\Program files (x86)\KGS\BMユーティリティWow64互換パック\KbdcUtil.dll -
さきほどの仮説が間違っていたようなので、補足します。
BM ユーティリティをアンインストールして、点字ディスプレイなしでリモートデバッグのテストをしても、同様にクラッシュが起きました。
ちなみに音声エンジンを JTalk から eSpeak にしてもクラッシュの状況はほぼ同じでした。
過去のバグ #30056 が解決していなかった(badUIAWindowClassNames に Button を追加するだけでは不十分だった)ということになりそうです。
スタックトレースに出てくる GUID は IID_IUIAutomationPropertyChangedEventHandler でした。
http://msdn.microsoft.com/en-us/library/windows/desktop/ee696119%28v=vs.85%29.aspx
前回の不具合対応で Mick さんからこんな指摘を受けていました:
NVDA はこのコンテクストで COM RPC を使っていない。 Office IME 2010 が UIA 関連で RPC を使っていて、これが不適切に実装されていることが、クラッシュの原因ではないか。
もう少し検討してみます。
どうやら本当に追加すべきだったのは "SysLink" だけのようです。
BM ユーティリティ 5.0.1 で BM46 をつなぎながら、この SysLink を無効にするかしないかでフリーズするかしないかが変わることを確認しました。
いままでのコミット:
https://bitbucket.org/nvdajp/nvdajp/commits/df7ea95ff0146692f9834d0971499188af650eff
どうやら "SysLink" の無効化はうまくいっているようなので、uia ブランチのマージではなく jpbranch に改めてコミットしました。
[jpbranch 941f679] work around Windows 7 and Microsoft Office IME 2010 issue. nvdajp 32145
既定の入力システムがMicrosoft Office IME 2010で、点字ディスプレイ出力を使いながら、ファイルの上書きをするとフリーズする現象を確認しています。
以下の環境で再現されました。
手順
備考
過去の関連バグ #30056