none
mfc42.dll でアプリケーションエラー RRS feed

  • 質問

  • VC++6.0で開発しているアプリケーションが以下のようなエラーで終了してしまいました。

    イベントログより

    ソース:Application Error

    イベントID:1000

    「エラー発生アプリケーションcif2.exe、バージョン 1.0.0.1、エラー発生モジュールmfc42.dll、バージョン 6.2.4131.0、エラー発生アドレス 0x0000101f」

     

    OSはXPです。1度発生しただけで、今のところ再現性がないため、原因特定ができません。せめてMFCの何のクラスor関数でエラーとなったのか知りたいところですが、どなたかご教授いただけるでしょうか。よろしくお願いします。

     

    2007年8月10日 4:20

すべての返信

  • ダンプファイルが残っているならWinDBGでダンプを見てみると多少は情報が得られるかもしれません。

    まずはワトソン博士のログファイルを見てコールスタックを確認するのがいいと思います。

     

    勘ですが、エラー発生アドレスが0付近なのでNULLポインタ関係のような気がします。

    2007年8月11日 6:34
  • C.Johnさん、ありがとうございます。

    まだDr.Watsonのログファイルは見られませんが、イベントログのDrWatsonのログは次のようになっていました。

     

    ソース:DrWatson

    イベントID:4097

    「アプリケーション C:\Program Files\CIF2\CIF2.EXE がアプリケーションエラーを起こしました。08/09/2007 09:02:50.939 にエラーが発生しました。発生した例外:c0000005 アドレス 73D1101F (MFC42!Ordinal2864) 」

     

    この MFC!Ordinal2864 が具体的に何のルーチン(関数?)なのでしょうか?

    2007年8月12日 1:34
  • 長くなりますが、Watsonのログを入手できましたので、以下に貼り付けます。

    mov edi, edi の箇所でフォールトしているようですが、

    mov edi, edi って何もしないのではないでしょうか?

    ==========================================================
    アプリケーション例外が発生しました:
            アプリケーション: C:\Program Files\PSE\CIF2\CIF2.exe (pid=1768)
            発生時間:  2007/08/09 @ 09:02:50.939
            例外番号:  c0000005 (アクセス違反)

    *----> システム情報 <----*
            コンピュータ名: CIF-PROCESSOR1
            ユーザー名: USER1
            ターミナル セッション Id: 0
            プロセッサの数: 1
            プロセッサの種類: x86 Family 6 Model 13 Stepping 6
            Windows バージョン: 5.1
            現在のビルド: 2600
            Service Pack: 2
            現在のタイプ: Uniprocessor Free
            登録されている会社名:
            登録されている所有者: CIF-PROCESSOR

    *----> タスク リスト <----*
       0 System Process
       4 System
     564 smss.exe
     628 csrss.exe
     652 winlogon.exe
     696 services.exe
     708 lsass.exe
     864 svchost.exe
     940 svchost.exe
    1056 svchost.exe
    1108 svchost.exe
    1236 svchost.exe
    1472 spoolsv.exe
    1612 Explorer.EXE
    1748 SOUNDMAN.EXE
    1756 ctfmon.exe
    1768 CIF2.exe
    1776 sistray.exe
     248 bgsvcg.exe
    1264 alg.exe
     164 conime.exe
    1020 svchost.exe
    1400 drwtsn32.exe

    *----> モジュール リスト <----*
    (0000000000400000 - 0000000000523000: C:\Program Files\PSE\CIF2\CIF2.exe
    (000000003b100000 - 000000003b11b000: C:\WINDOWS\IME\IMJP8_1\Dicts\IMJPCD.DIC
    (000000004edc0000 - 000000004ee16000: C:\WINDOWS\system32\imjp81.ime
    (0000000058730000 - 0000000058768000: C:\WINDOWS\system32\uxtheme.dll
    (0000000059250000 - 00000000592a4000: C:\WINDOWS\system32\NETAPI32.dll
    (000000005f700000 - 000000005f70d000: C:\WINDOWS\system32\MFC42LOC.DLL
    (0000000060740000 - 0000000060749000: C:\WINDOWS\system32\LPK.DLL
    (00000000607c0000 - 0000000060816000: C:\WINDOWS\system32\hnetcfg.dll
    (00000000648f0000 - 00000000649c0000: C:\WINDOWS\system32\imjp81k.dll
    (0000000071980000 - 00000000719bf000: C:\WINDOWS\system32\mswsock.dll
    (00000000719c0000 - 00000000719c8000: C:\WINDOWS\System32\wshtcpip.dll
    (00000000719d0000 - 00000000719d8000: C:\WINDOWS\system32\WS2HELP.dll
    (00000000719e0000 - 00000000719f7000: C:\WINDOWS\system32\WS2_32.dll
    (0000000071a00000 - 0000000071a0b000: C:\WINDOWS\system32\WSOCK32.dll
    (0000000072220000 - 0000000072225000: C:\WINDOWS\system32\sensapi.dll
    (0000000073620000 - 000000007364e000: C:\WINDOWS\system32\msctfime.ime
    (0000000073d10000 - 0000000073e0e000: C:\WINDOWS\system32\MFC42.DLL
    (0000000073f80000 - 0000000073feb000: C:\WINDOWS\system32\USP10.dll
    (0000000074660000 - 00000000746ab000: C:\WINDOWS\system32\MSCTF.dll
    (00000000759b0000 - 0000000075a60000: C:\WINDOWS\system32\USERENV.dll
    (00000000762e0000 - 00000000762fd000: C:\WINDOWS\system32\IMM32.DLL
    (00000000765c0000 - 0000000076653000: C:\WINDOWS\system32\CRYPT32.dll
    (0000000076660000 - 0000000076704000: C:\WINDOWS\system32\WININET.dll
    (0000000076970000 - 0000000076aad000: C:\WINDOWS\system32\ole32.dll
    (0000000076af0000 - 0000000076b1b000: C:\WINDOWS\system32\WINMM.dll
    (0000000076d10000 - 0000000076d29000: C:\WINDOWS\system32\iphlpapi.dll
    (0000000076d90000 - 0000000076db2000: C:\WINDOWS\system32\Apphelp.dll
    (0000000076e30000 - 0000000076e3e000: C:\WINDOWS\system32\rtutils.dll
    (0000000076e40000 - 0000000076e52000: C:\WINDOWS\system32\rasman.dll
    (0000000076e60000 - 0000000076e8f000: C:\WINDOWS\system32\TAPI32.dll
    (0000000076e90000 - 0000000076ecc000: C:\WINDOWS\system32\RASAPI32.DLL
    (0000000076ed0000 - 0000000076ef7000: C:\WINDOWS\system32\DNSAPI.dll
    (0000000076f10000 - 0000000076f3c000: C:\WINDOWS\system32\WLDAP32.dll
    (0000000076f60000 - 0000000076f68000: C:\WINDOWS\System32\winrnr.dll
    (0000000076f70000 - 0000000076f76000: C:\WINDOWS\system32\rasadhlp.dll
    (00000000770d0000 - 000000007715c000: C:\WINDOWS\system32\oleaut32.dll
    (0000000077160000 - 0000000077263000: C:\WINDOWS\WinSxS\X86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03\COMCTL32.dll
    (0000000077bb0000 - 0000000077bb8000: C:\WINDOWS\system32\VERSION.dll
    (0000000077bc0000 - 0000000077c18000: C:\WINDOWS\system32\msvcrt.dll
    (0000000077c40000 - 0000000077c52000: C:\WINDOWS\system32\MSASN1.dll
    (0000000077cf0000 - 0000000077d7f000: C:\WINDOWS\system32\USER32.dll
    (0000000077d80000 - 0000000077e29000: C:\WINDOWS\system32\ADVAPI32.dll
    (0000000077e30000 - 0000000077ec1000: C:\WINDOWS\system32\RPCRT4.dll
    (0000000077ed0000 - 0000000077f17000: C:\WINDOWS\system32\GDI32.dll
    (0000000077f20000 - 0000000077f96000: C:\WINDOWS\system32\SHLWAPI.dll
    (0000000077fa0000 - 0000000077fb1000: C:\WINDOWS\system32\Secur32.dll
    (000000007c800000 - 000000007c932000: C:\WINDOWS\system32\kernel32.dll
    (000000007c940000 - 000000007c9dd000: C:\WINDOWS\system32\ntdll.dll
    (000000007d5b0000 - 000000007ddae000: C:\WINDOWS\system32\SHELL32.dll

    *----> スレッド Id 0x6ec の状態のダンプ  <----*

    eax=000100b0 ebx=00000000 ecx=77cfb785 edx=7c94eb94 esi=00385218 edi=10000000
    eip=73d1101f esp=0012fd4c ebp=0012fde0 iopl=0         nv up ei pl zr na po nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000246

    *** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\WINDOWS\system32\MFC42.DLL -
    ファンクション: MFC42!Ordinal2864
            73d1100d 85c0             test    eax,eax
            73d1100f 7508             jnz     MFC42!Ordinal1175+0x14 (73d11019)
            73d11011 e8c0720900       call    MFC42!Ordinal1168 (73da82d6)
            73d11016 8b4004           mov     eax,[eax+0x4]
            73d11019 c3               ret
            73d1101a cc               int     3
            73d1101b cc               int     3
            73d1101c cc               int     3
            73d1101d cc               int     3
            73d1101e cc               int     3
    フォールト ->MFC42!Ordinal2864:
    73d1101f 8bff             mov     edi,edi
            73d11021 56               push    esi
            73d11022 57               push    edi
            73d11023 6a01             push    0x1
            73d11025 e823000000       call    MFC42!Ordinal6581 (73d1104d)
            73d1102a ff74240c         push    dword ptr [esp+0xc]
            73d1102e 8bf0             mov     esi,eax
            73d11030 8bce             mov     ecx,esi
            73d11032 e88d000000       call    MFC42!Ordinal2861 (73d110c4)
            73d11037 8bf8             mov     edi,eax
            73d11039 56               push    esi

    *----> スタック バック トレース <----*
    WARNING: Stack unwind information not available. Following frames may be wrong.
    ChildEBP RetAddr  Args to Child             
    0012fde0 73d11b9b 00000363 00000001 73db8830 MFC42!Ordinal2864
    0012fe00 73d12a10 00000363 00000001 00000000 MFC42!Ordinal6374+0x24
    0012fe20 73d11b05 00000363 00000001 00000000 MFC42!Ordinal6369+0xc8
    0012fe80 73d12c9c 00385218 00000000 00000363 MFC42!Ordinal1109+0x91
    0012fea4 73d12daf 000100b0 00000363 00000001 MFC42!Ordinal5805+0x36
    00000000 00000000 00000000 00000000 00000000 MFC42!Ordinal4699+0x4f

    *----> ロウ スタック ダンプ <----*
    000000000012fd4c  61 14 d1 73 b0 00 01 00 - 74 33 d1 73 18 52 38 00  a..s....t3.s.R8.
    000000000012fd5c  00 00 00 00 02 33 d1 73 - 47 20 d1 73 01 00 00 00  .....3.sG .s....
    000000000012fd6c  00 00 00 00 63 03 00 00 - 18 52 38 00 18 52 38 00  ....c....R8..R8.
    000000000012fd7c  3f e5 d1 77 ee 00 01 00 - 63 03 00 00 01 00 00 00  ?..w....c.......
    000000000012fd8c  00 00 00 00 01 00 00 00 - b4 fd 12 00 6b 21 d1 73  ............k!.s
    000000000012fd9c  3f e5 d1 77 ee 00 01 00 - 63 03 00 00 01 00 00 00  ?..w....c.......
    000000000012fdac  00 00 00 00 a4 6b 38 00 - d0 fd 12 00 b2 1b d1 73  .....k8........s
    000000000012fdbc  63 03 00 00 01 00 00 00 - 00 00 00 00 63 03 00 00  c...........c...
    000000000012fdcc  a0 8e db 73 00 00 00 00 - 74 fe 12 00 f1 ef da 73  ...s....t......s
    000000000012fddc  ff ff ff ff 00 fe 12 00 - 9b 1b d1 73 63 03 00 00  ...........sc...
    000000000012fdec  01 00 00 00 30 88 db 73 - fc fd 12 00 63 03 00 00  ....0..s....c...
    000000000012fdfc  00 00 00 00 20 fe 12 00 - 10 2a d1 73 63 03 00 00  .... ....*.sc...
    000000000012fe0c  01 00 00 00 00 00 00 00 - 18 52 38 00 63 03 00 00  .........R8.c...
    000000000012fe1c  88 39 15 00 80 fe 12 00 - 05 1b d1 73 63 03 00 00  .9.........sc...
    000000000012fe2c  01 00 00 00 00 00 00 00 - 1c f2 d0 77 d4 00 02 00  ...........w....
    000000000012fe3c  63 03 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00  c...............
    000000000012fe4c  00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00  ................
    000000000012fe5c  b0 82 da 73 03 00 00 00 - 1c f2 d0 77 d4 00 02 00  ...s.......w....
    000000000012fe6c  88 39 15 00 34 fe 12 00 - b0 ff 12 00 a4 ef da 73  .9..4..........s
    000000000012fe7c  00 00 00 00 a4 fe 12 00 - 9c 2c d1 73 18 52 38 00  .........,.s.R8.

    *----> スレッド Id 0x6f8 の状態のダンプ  <----*

    eax=00dafee4 ebx=00000003 ecx=00387c10 edx=7c94eb94 esi=00000000 edi=00dafec0
    eip=7c94eb94 esp=00dafe90 ebp=00dafee8 iopl=0         nv up ei pl nz na po nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000206

    *** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\WINDOWS\system32\ntdll.dll -
    ファンクション: ntdll!KiFastSystemCallRet
            7c94eb89 90               nop
            7c94eb8a 90               nop
            ntdll!KiFastSystemCall:
            7c94eb8b 8bd4             mov     edx,esp
            7c94eb8d 0f34             sysenter
            7c94eb8f 90               nop
            7c94eb90 90               nop
            7c94eb91 90               nop
            7c94eb92 90               nop
            7c94eb93 90               nop
            ntdll!KiFastSystemCallRet:
            7c94eb94 c3               ret
            7c94eb95 8da42400000000   lea     esp,[esp]
            7c94eb9c 8d642400         lea     esp,[esp]
            7c94eba0 90               nop
            7c94eba1 90               nop
            7c94eba2 90               nop
            7c94eba3 90               nop
            7c94eba4 90               nop
            ntdll!KiIntSystemCall:
            7c94eba5 8d542408         lea     edx,[esp+0x8]
            7c94eba9 cd2e             int     2e

    *----> スタック バック トレース <----*
    *** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\WINDOWS\system32\kernel32.dll -
    WARNING: Stack unwind information not available. Following frames may be wrong.
    *** WARNING: Unable to verify checksum for C:\Program Files\PSE\CIF2\CIF2.exe
    *** ERROR: Module load completed but symbols could not be loaded for C:\Program Files\PSE\CIF2\CIF2.exe
    ChildEBP RetAddr  Args to Child             
    00dafee8 7c802451 000000c8 00000000 7c802520 ntdll!KiFastSystemCallRet
    00dafef8 00407bad 000000c8 000000a4 0012fab4 kernel32!Sleep+0xf
    7c802520 ff006aec 75ff0c75 000ee808 c25d0000 CIF2+0x7bad
    8b55ff8b 00000000 00000000 00000000 00000000 0xff006aec

    *----> ロウ スタック ダンプ <----*
    0000000000dafe90  5c d8 94 7c ed 23 80 7c - 00 00 00 00 c0 fe da 00  \..|.#.|........
    0000000000dafea0  00 00 00 00 10 7c 38 00 - 03 00 00 00 14 00 00 00  .....|8.........
    0000000000dafeb0  01 00 00 00 00 00 00 00 - 00 00 00 00 10 00 00 00  ................
    0000000000dafec0  80 7b e1 ff ff ff ff ff - 20 25 80 7c c0 fe da 00  .{...... %.|....
    0000000000dafed0  a0 fe da 00 00 00 00 00 - 74 ff da 00 a8 9a 83 7c  ........t......|
    0000000000dafee0  58 24 80 7c 00 00 00 00 - f8 fe da 00 51 24 80 7c  X$.|........Q$.|
    0000000000dafef0  c8 00 00 00 00 00 00 00 - 20 25 80 7c ad 7b 40 00  ........ %.|.{@.
    0000000000daff00  c8 00 00 00 a4 00 00 00 - b4 fa 12 00 10 7c 38 00  .............|8.
    0000000000daff10  80 ff da 00 1d 7b 40 00 - c7 0b d2 73 d8 5c 38 00  .....{@....s.\8.
    0000000000daff20  00 85 38 00 70 84 38 00 - 70 ff da 00 4c 76 db 73  ..8.p.8.p...Lv.s
    0000000000daff30  01 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00  ................
    0000000000daff40  01 00 00 00 00 00 00 00 - 20 3c 15 00 b0 00 01 00  ........ <......
    0000000000daff50  00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00  ................
    0000000000daff60  00 00 00 00 00 00 00 00 - 00 00 00 00 10 7c 38 00  .............|8.
    0000000000daff70  1c ff da 00 a4 ff da 00 - 6c 05 db 73 00 00 00 00  ........l..s....
    0000000000daff80  b4 ff da 00 b0 a3 be 77 - b4 fa 12 00 d8 5c 38 00  .......w.....\8.
    0000000000daff90  01 00 00 00 70 84 38 00 - 00 00 00 00 8c ff da 00  ....p.8.........
    0000000000daffa0  21 a6 4f 80 dc ff da 00 - 94 5c be 77 d8 40 bc 77  !.O......\.w.@.w
    0000000000daffb0  00 00 00 00 ec ff da 00 - 83 b6 80 7c 70 84 38 00  ...........|p.8.
    0000000000daffc0  d8 5c 38 00 01 00 00 00 - 70 84 38 00 00 d0 fd 7f  .\8.....p.8.....

    *----> スレッド Id 0x6fc の状態のダンプ  <----*

    eax=00eafeac ebx=00000003 ecx=00eafe90 edx=7c94eb94 esi=00000000 edi=00eafec0
    eip=7c94eb94 esp=00eafe90 ebp=00eafee8 iopl=0         nv up ei pl nz na po nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000206

    ファンクション: ntdll!KiFastSystemCallRet
            7c94eb89 90               nop
            7c94eb8a 90               nop
            ntdll!KiFastSystemCall:
            7c94eb8b 8bd4             mov     edx,esp
            7c94eb8d 0f34             sysenter
            7c94eb8f 90               nop
            7c94eb90 90               nop
            7c94eb91 90               nop
            7c94eb92 90               nop
            7c94eb93 90               nop
            ntdll!KiFastSystemCallRet:
            7c94eb94 c3               ret
            7c94eb95 8da42400000000   lea     esp,[esp]
            7c94eb9c 8d642400         lea     esp,[esp]
            7c94eba0 90               nop
            7c94eba1 90               nop
            7c94eba2 90               nop
            7c94eba3 90               nop
            7c94eba4 90               nop
            ntdll!KiIntSystemCall:
            7c94eba5 8d542408         lea     edx,[esp+0x8]
            7c94eba9 cd2e             int     2e

    *----> スタック バック トレース <----*
    WARNING: Stack unwind information not available. Following frames may be wrong.
    ChildEBP RetAddr  Args to Child             
    00eafee8 7c802451 000000c8 00000000 7c802520 ntdll!KiFastSystemCallRet
    00eafef8 00407bad 000000c8 000000b8 0012fab4 kernel32!Sleep+0xf
    7c802520 ff006aec 75ff0c75 000ee808 c25d0000 CIF2+0x7bad
    8b55ff8b 00000000 00000000 00000000 00000000 0xff006aec

    *----> ロウ スタック ダンプ <----*
    0000000000eafe90  5c d8 94 7c ed 23 80 7c - 00 00 00 00 c0 fe ea 00  \..|.#.|........
    0000000000eafea0  00 00 00 00 e0 85 38 00 - 03 00 00 00 14 00 00 00  ......8.........
    0000000000eafeb0  01 00 00 00 00 00 00 00 - 00 00 00 00 10 00 00 00  ................
    0000000000eafec0  80 7b e1 ff ff ff ff ff - 20 25 80 7c c0 fe ea 00  .{...... %.|....
    0000000000eafed0  a0 fe ea 00 00 00 00 00 - 74 ff ea 00 a8 9a 83 7c  ........t......|
    0000000000eafee0  58 24 80 7c 00 00 00 00 - f8 fe ea 00 51 24 80 7c  X$.|........Q$.|
    0000000000eafef0  c8 00 00 00 00 00 00 00 - 20 25 80 7c ad 7b 40 00  ........ %.|.{@.
    0000000000eaff00  c8 00 00 00 b8 00 00 00 - b4 fa 12 00 e0 85 38 00  ..............8.
    0000000000eaff10  80 ff ea 00 1d 7b 40 00 - c7 0b d2 73 d8 5c 38 00  .....{@....s.\8.
    0000000000eaff20  40 8e 38 00 70 84 38 00 - 70 ff ea 00 4c 76 db 73  @.8.p.8.p...Lv.s
    0000000000eaff30  01 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00  ................
    0000000000eaff40  01 00 00 00 00 00 00 00 - 20 3c 15 00 b0 00 01 00  ........ <......
    0000000000eaff50  00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00  ................
    0000000000eaff60  00 00 00 00 00 00 00 00 - 00 00 00 00 e0 85 38 00  ..............8.
    0000000000eaff70  1c ff ea 00 a4 ff ea 00 - 6c 05 db 73 00 00 00 00  ........l..s....
    0000000000eaff80  b4 ff ea 00 b0 a3 be 77 - b4 fa 12 00 d8 5c 38 00  .......w.....\8.
    0000000000eaff90  01 00 00 00 70 84 38 00 - 00 00 00 00 8c ff ea 00  ....p.8.........
    0000000000eaffa0  21 a6 4f 80 dc ff ea 00 - 94 5c be 77 d8 40 bc 77  !.O......\.w.@.w
    0000000000eaffb0  00 00 00 00 ec ff ea 00 - 83 b6 80 7c 70 84 38 00  ...........|p.8.
    0000000000eaffc0  d8 5c 38 00 01 00 00 00 - 70 84 38 00 00 c0 fd 7f  .\8.....p.8.....

    *----> スレッド Id 0x700 の状態のダンプ  <----*

    eax=001827e0 ebx=00000003 ecx=00faf770 edx=0000000f esi=00000000 edi=00fafec0
    eip=7c94eb94 esp=00fafe90 ebp=00fafee8 iopl=0         nv up ei pl nz na po nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000206

    ファンクション: ntdll!KiFastSystemCallRet
            7c94eb89 90               nop
            7c94eb8a 90               nop
            ntdll!KiFastSystemCall:
            7c94eb8b 8bd4             mov     edx,esp
            7c94eb8d 0f34             sysenter
            7c94eb8f 90               nop
            7c94eb90 90               nop
            7c94eb91 90               nop
            7c94eb92 90               nop
            7c94eb93 90               nop
            ntdll!KiFastSystemCallRet:
            7c94eb94 c3               ret
            7c94eb95 8da42400000000   lea     esp,[esp]
            7c94eb9c 8d642400         lea     esp,[esp]
            7c94eba0 90               nop
            7c94eba1 90               nop
            7c94eba2 90               nop
            7c94eba3 90               nop
            7c94eba4 90               nop
            ntdll!KiIntSystemCall:
            7c94eba5 8d542408         lea     edx,[esp+0x8]
            7c94eba9 cd2e             int     2e

    *----> スタック バック トレース <----*
    WARNING: Stack unwind information not available. Following frames may be wrong.
    ChildEBP RetAddr  Args to Child             
    00fafee8 7c802451 000000c8 00000000 7c802520 ntdll!KiFastSystemCallRet
    00fafef8 00407bad 000000c8 000000c8 0012fab4 kernel32!Sleep+0xf
    7c802520 ff006aec 75ff0c75 000ee808 c25d0000 CIF2+0x7bad
    8b55ff8b 00000000 00000000 00000000 00000000 0xff006aec

    *----> ロウ スタック ダンプ <----*
    0000000000fafe90  5c d8 94 7c ed 23 80 7c - 00 00 00 00 c0 fe fa 00  \..|.#.|........
    0000000000fafea0  00 00 00 00 f8 8f 38 00 - 03 00 00 00 14 00 00 00  ......8.........
    0000000000fafeb0  01 00 00 00 00 00 00 00 - 00 00 00 00 10 00 00 00  ................
    0000000000fafec0  80 7b e1 ff ff ff ff ff - 20 25 80 7c c0 fe fa 00  .{...... %.|....
    0000000000fafed0  a0 fe fa 00 00 00 00 00 - 74 ff fa 00 a8 9a 83 7c  ........t......|
    0000000000fafee0  58 24 80 7c 00 00 00 00 - f8 fe fa 00 51 24 80 7c  X$.|........Q$.|
    0000000000fafef0  c8 00 00 00 00 00 00 00 - 20 25 80 7c ad 7b 40 00  ........ %.|.{@.
    0000000000faff00  c8 00 00 00 c8 00 00 00 - b4 fa 12 00 f8 8f 38 00  ..............8.
    0000000000faff10  80 ff fa 00 1d 7b 40 00 - c7 0b d2 73 d8 5c 38 00  .....{@....s.\8.
    0000000000faff20  58 98 38 00 70 84 38 00 - 70 ff fa 00 4c 76 db 73  X.8.p.8.p...Lv.s
    0000000000faff30  01 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00  ................
    0000000000faff40  01 00 00 00 00 00 00 00 - 20 3c 15 00 b0 00 01 00  ........ <......
    0000000000faff50  00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00  ................
    0000000000faff60  00 00 00 00 00 00 00 00 - 00 00 00 00 f8 8f 38 00  ..............8.
    0000000000faff70  1c ff fa 00 a4 ff fa 00 - 6c 05 db 73 00 00 00 00  ........l..s....
    0000000000faff80  b4 ff fa 00 b0 a3 be 77 - b4 fa 12 00 d8 5c 38 00  .......w.....\8.
    0000000000faff90  01 00 00 00 70 84 38 00 - 00 00 00 00 8c ff fa 00  ....p.8.........
    0000000000faffa0  21 a6 4f 80 dc ff fa 00 - 94 5c be 77 d8 40 bc 77  !.O......\.w.@.w
    0000000000faffb0  00 00 00 00 ec ff fa 00 - 83 b6 80 7c 70 84 38 00  ...........|p.8.
    0000000000faffc0  d8 5c 38 00 01 00 00 00 - 70 84 38 00 00 b0 fd 7f  .\8.....p.8.....

    *----> スレッド Id 0x704 の状態のダンプ  <----*

    eax=00000102 ebx=00000003 ecx=010afe7c edx=7c94eb94 esi=00000000 edi=010afec0
    eip=7c94eb94 esp=010afe90 ebp=010afee8 iopl=0         nv up ei pl nz na po nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000206

    ファンクション: ntdll!KiFastSystemCallRet
            7c94eb89 90               nop
            7c94eb8a 90               nop
            ntdll!KiFastSystemCall:
            7c94eb8b 8bd4             mov     edx,esp
            7c94eb8d 0f34             sysenter
            7c94eb8f 90               nop
            7c94eb90 90               nop
            7c94eb91 90               nop
            7c94eb92 90               nop
            7c94eb93 90               nop
            ntdll!KiFastSystemCallRet:
            7c94eb94 c3               ret
            7c94eb95 8da42400000000   lea     esp,[esp]
            7c94eb9c 8d642400         lea     esp,[esp]
            7c94eba0 90               nop
            7c94eba1 90               nop
            7c94eba2 90               nop
            7c94eba3 90               nop
            7c94eba4 90               nop
            ntdll!KiIntSystemCall:
            7c94eba5 8d542408         lea     edx,[esp+0x8]
            7c94eba9 cd2e             int     2e

    *----> スタック バック トレース <----*
    WARNING: Stack unwind information not available. Following frames may be wrong.
    ChildEBP RetAddr  Args to Child             
    010afee8 7c802451 000000c8 00000000 7c802520 ntdll!KiFastSystemCallRet
    010afef8 00407bad 000000c8 000000d8 0012fab4 kernel32!Sleep+0xf
    7c802520 ff006aec 75ff0c75 000ee808 c25d0000 CIF2+0x7bad
    8b55ff8b 00000000 00000000 00000000 00000000 0xff006aec

    *----> ロウ スタック ダンプ <----*
    00000000010afe90  5c d8 94 7c ed 23 80 7c - 00 00 00 00 c0 fe 0a 01  \..|.#.|........
    00000000010afea0  00 00 00 00 10 9a 38 00 - 03 00 00 00 14 00 00 00  ......8.........
    00000000010afeb0  01 00 00 00 00 00 00 00 - 00 00 00 00 10 00 00 00  ................
    00000000010afec0  80 7b e1 ff ff ff ff ff - 20 25 80 7c c0 fe 0a 01  .{...... %.|....
    00000000010afed0  a0 fe 0a 01 00 00 00 00 - 74 ff 0a 01 a8 9a 83 7c  ........t......|
    00000000010afee0  58 24 80 7c 00 00 00 00 - f8 fe 0a 01 51 24 80 7c  X$.|........Q$.|
    00000000010afef0  c8 00 00 00 00 00 00 00 - 20 25 80 7c ad 7b 40 00  ........ %.|.{@.
    00000000010aff00  c8 00 00 00 d8 00 00 00 - b4 fa 12 00 10 9a 38 00  ..............8.
    00000000010aff10  80 ff 0a 01 1d 7b 40 00 - c7 0b d2 73 d8 5c 38 00  .....{@....s.\8.
    00000000010aff20  70 a2 38 00 70 84 38 00 - 70 ff 0a 01 4c 76 db 73  p.8.p.8.p...Lv.s
    00000000010aff30  01 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00  ................
    00000000010aff40  01 00 00 00 00 00 00 00 - 20 3c 15 00 b0 00 01 00  ........ <......
    00000000010aff50  00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00  ................
    00000000010aff60  00 00 00 00 00 00 00 00 - 00 00 00 00 10 9a 38 00  ..............8.
    00000000010aff70  1c ff 0a 01 a4 ff 0a 01 - 6c 05 db 73 00 00 00 00  ........l..s....
    00000000010aff80  b4 ff 0a 01 b0 a3 be 77 - b4 fa 12 00 d8 5c 38 00  .......w.....\8.
    00000000010aff90  01 00 00 00 70 84 38 00 - 00 00 00 00 8c ff 0a 01  ....p.8.........
    00000000010affa0  21 a6 4f 80 dc ff 0a 01 - 94 5c be 77 d8 40 bc 77  !.O......\.w.@.w
    00000000010affb0  00 00 00 00 ec ff 0a 01 - 83 b6 80 7c 70 84 38 00  ...........|p.8.
    00000000010affc0  d8 5c 38 00 01 00 00 00 - 70 84 38 00 00 a0 fd 7f  .\8.....p.8.....

    *----> スレッド Id 0x358 の状態のダンプ  <----*

    eax=719f400c ebx=c0000000 ecx=0017ea50 edx=00000018 esi=00000102 edi=719b7558
    eip=7c94eb94 esp=03cfff7c ebp=03cfffb4 iopl=0         nv up ei pl nz na pe nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000202

    ファンクション: ntdll!KiFastSystemCallRet
            7c94eb89 90               nop
            7c94eb8a 90               nop
            ntdll!KiFastSystemCall:
            7c94eb8b 8bd4             mov     edx,esp
            7c94eb8d 0f34             sysenter
            7c94eb8f 90               nop
            7c94eb90 90               nop
            7c94eb91 90               nop
            7c94eb92 90               nop
            7c94eb93 90               nop
            ntdll!KiFastSystemCallRet:
            7c94eb94 c3               ret
            7c94eb95 8da42400000000   lea     esp,[esp]
            7c94eb9c 8d642400         lea     esp,[esp]
            7c94eba0 90               nop
            7c94eba1 90               nop
            7c94eba2 90               nop
            7c94eba3 90               nop
            7c94eba4 90               nop
            ntdll!KiIntSystemCall:
            7c94eba5 8d542408         lea     edx,[esp+0x8]
            7c94eba9 cd2e             int     2e

    *----> スタック バック トレース <----*
    WARNING: Stack unwind information not available. Following frames may be wrong.
    ChildEBP RetAddr  Args to Child             
    03cfffb4 7c80b683 71997aa3 00dafbc0 7c94ee18 ntdll!KiFastSystemCallRet
    03cfffec 00000000 7198d5af 0017ac58 00000000 kernel32!GetModuleFileNameA+0x1b4

    *----> ロウ スタック ダンプ <----*
    0000000003cfff7c  1b e3 94 7c 09 d6 98 71 - 44 02 00 00 bc ff cf 03  ...|...qD.......
    0000000003cfff8c  b0 ff cf 03 a4 ff cf 03 - 50 d6 98 71 c0 fb da 00  ........P..q....
    0000000003cfff9c  18 ee 94 7c 58 ac 17 00 - 20 01 00 c0 00 00 00 00  ...|X... .......
    0000000003cfffac  00 00 98 71 88 ac 17 00 - ec ff cf 03 83 b6 80 7c  ...q...........|
    0000000003cfffbc  a3 7a 99 71 c0 fb da 00 - 18 ee 94 7c 58 ac 17 00  .z.q.......|X...
    0000000003cfffcc  00 d0 fa 7f 00 e6 fb 84 - c0 ff cf 03 20 28 d3 84  ............ (..
    0000000003cfffdc  ff ff ff ff a8 9a 83 7c - 90 b6 80 7c 00 00 00 00  .......|...|....
    0000000003cfffec  00 00 00 00 00 00 00 00 - af d5 98 71 58 ac 17 00  ...........qX...
    0000000003cffffc  00 00 00 00 43 6c 69 65 - 6e 74 20 55 72 6c 43 61  ....Client UrlCa
    0000000003d0000c  63 68 65 20 4d 4d 46 20 - 56 65 72 20 35 2e 32 00  che MMF Ver 5.2.
    0000000003d0001c  00 c0 00 00 00 40 00 00 - 00 01 00 00 68 00 00 00  .....@......h...
    0000000003d0002c  00 00 00 00 00 00 80 00 - 00 00 00 00 00 00 00 00  ................
    0000000003d0003c  00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00  ................
    0000000003d0004c  00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00  ................
    0000000003d0005c  00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00  ................
    0000000003d0006c  00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00  ................
    0000000003d0007c  00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00  ................
    0000000003d0008c  00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00  ................
    0000000003d0009c  00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00  ................
    0000000003d000ac  00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00  ................

     

    2007年8月13日 2:49
  • Dr.Watsonで表示しているMFC42!Ordinal2864 というのは、MFC42.DEF をみると、CWnd::FromHandle のようです。以下、MFC42.DEFから抜粋

     

     ?FromHandle@CWnd@@SGPAV1@PAUHWND__@@@Z @ 2864 NONAME

     

    CWnd::FromHandleにブレークポイントをかけて実行しましたが、アイドル時に頻繁に呼ばれています。

    場所さえ判ればなんとかなると思っていましたが、まったく原因がわかりません。

    2007年8月13日 10:24
  • コールスタックを整理すると

     

    CWnd::FromHandle(0x363)  ←  引数が 0x363??

    CWnd::WindowProc(0x363, 0x01, 0x0) ← メッセージID 0x363

    CControlBar::WindowProc(0x363, 0x01, 0x0)

     

    という順番ですね。

    CControlBar関係でしょうか。

    すいません、私ではこれ以上の調査案はでてこないですね。
    2007年8月14日 12:17
  • C.Johnさん、ありがとうございます。

    メッセージID 363は AFX_IDS_IDLEMESSAGE でCControlBar::WindowProc( 0x363, 0x01, 0x0 ) はアイドル時に頻繁に呼ばれていました。

    そのあと、通常は CWnd::WindowProc( 0x363, 1, 0 ) が呼ばれて、

    その先の CWnd:SurprisenWndMsg()にて 呼び出す関数アドレスを取り出しているようで、

    それがCControlBar:SurprisenIdleUpdateCmdUI() を呼び出すことになります。

    問題が発生したとき、CWnd:SurprisenWndMsg()の関数アドレスの取り出しあたりがおかしくなって、CWnd::FromHandle()が間違って呼ばれたような印象です。

    ところで、CStatusBarに注目してみると、MainFrm.cppにてステータスバーの内容を入れ替えております。

    ちょっと気になるのは、デフォルトで持っているID_SEPARATOR は無くしているのですが、

    static UINT indicators[] =

    {

    ID_INIDICATOR_STAT, // 独自

    ID_INIDICATOR_MGR, // 独自

    ID_INIDICATOR_ENG1, // 独自

    // ID_SEPARATOR,

    // ID_INDICATOR_KANA,

    // ID_INDICATOR_CAPS,

    // ID_INDICATOR_NUM,

    // ID_INDICATOR_SCRL,

    };

    のようにしていますが、アプリ上でメニュー操作があると、MFCのルーチンがID_SEPARATORの領域に "レディ" 等の表示を行おうとしています。これが影響していないか?ID_SEPARATORを復活させて非表示にしてみようかと思ったりしますが、あれからずっと稼働しているにもかかわらず、問題が再現していないため、何をしても解決したといいきれない状況です。

     

    2007年8月15日 7:25
  • 最初から状況を整理して考え直してみました。

    フォールトとなったアドレスの直前がint 3 (0xcc)で埋められていることから

    メモリ破壊が原因ではないでしょうか。

    Debugビルドであればローカル変数の初期値は0xccccccccになるため

    初期化されていない変数で書き込みをおこなってしまった可能性があります。

    (ただ、リンクされているDLL名から判断するとReleaseビルドですよね。)

     

    CWnd::FromHandleの処理でint 3を呼ぶとは考えづらいのも事実ですので

    念のためデバッグ実行の混合モードでCWnd::FromHandleの中まで入って

    ダンプと同じか確認してみてください。

    もし、違っていたらどこかで不正なアドレスに書き込みを行い、

    メモリを破壊していたと結論づけてよいと思います。

    (壊されたアドレスがたまたまMFCのコード領域だった)

     

    メモリ破壊であればDevPartner(BoudsChecker)などのツールで検査するのが

    手っ取り早いと思います。

    2007年8月15日 8:42
  • C.Johnさん、いろいろアドバイス感謝しています。

     

    0xccが連続している場所は、実際にMFC42.DLLにありましたので、メモリ破壊ではありません。

    確認方法:

    1.MFCのアプリケーションをReleaseモードで作成します。

    2.DOSプロンプトで EXEの場所にいき、ntsd  app.exe と実行します。(app.exeは目的のプログラム名)

    3.デバッガが起動しますので、デバッガのプロンプトにて、x mfc42! を実行します。

    4.u mfc42!ordinal2864 を実行します。

    5.問題の箇所が表示されますが、直前に cccccccc があります。

           4.で表示されたアドレスが73d1101f でしたら、u 73d11000 としてみます。

     

    昨日から、DevPartnerの試用版を利用していますが、それらしいエラーは起きていません。

     

    2007年8月15日 9:31
  • VC6の環境がなかったのでVM上に作ってみました。(便利な世の中ですね)

    ただしOSはWin2000ですので完全な再現環境とは言えませんが。

     

    早速教えていただいた手順を実行してみました。

    (ntsdは使ったことがないので勉強になります。)

    すると直前に cc が見当たりませんでした。

    (多少使ったことのある)WinDBGで同様のことを試してみました。

     

    1.シンボルパスをサーバーから取得するように設定

    2.xコマンドでCWnd::FromHandleのアドレスを調べる

    0:001> x /t /v mfc42!CWnd::FromHandle
    pub global 6ab58a1f    0 <NoType> MFC42!CWnd::FromHandle = <no type information>

    3.Disassemblyウィンドウで6ab58a1f 付近を見る


    6ab58a10 8b4614          mov     eax,dword ptr [esi+14h]
    6ab58a13 5e              pop     esi
    6ab58a14 64890d00000000  mov     dword ptr fs:[0],ecx
    6ab58a1b c9              leave
    6ab58a1c c20400          ret     4
    MFC42!CWnd::FromHandle:
    6ab58a1f 56              push    esi
    6ab58a20 57              push    edi
    6ab58a21 6a01            push    1
    6ab58a23 e885ffffff      call    MFC42!afxMapHWND (6ab589ad)
    6ab58a28 8bf0            mov     esi,eax        ←ワトソンのログと逆
    6ab58a2a ff74240c        push    dword ptr [esp+0Ch] ←ワトソンのログと逆
    6ab58a2e 8bce            mov     ecx,esi
    6ab58a30 e8d3310000      call    MFC42!CHandleMap::FromHandle (6ab5bc08)
    6ab58a35 8bf8            mov     edi,eax
    6ab58a37 56              push    esi
    6ab58a38 8bcf            mov     ecx,edi
    6ab58a3a e80c4d0000      call    MFC42!CWnd::AttachControlSite (6ab5d74b)
    6ab58a3f 8bc7            mov     eax,edi
    6ab58a41 5f              pop     edi
    6ab58a42 5e              pop     esi
    6ab58a43 c20400          ret     4

     

    若干違うのでDLLのバージョンが違うかもしれません。

    mfc42.dll 6.0.9586.0です。

     

    個人的にはまだメモリ破壊の可能性を疑っています。

    そもそもCWnd::FromHandleが呼ばれるのがおかしい感じがするので

    CWnd::WindowProcのアドレス(MFC42!Ordinal6374+0x24)付近が

    破壊されていないか確認したいです。

    とは言え、そこを調べるにはワトソン博士のログだけでは足りないので

    ダンプファイルが必要ですね。

    2007年8月15日 13:49
  • C.John さん

     

    mfc42.dllのバージョンは 6.2.4131.0 です。また、デバッグモードでCWnd::FromHandleをみると、リリースモード(ワトソンのコード)とも違っています。

    ところで、エラー時のuser.dmpを入手しました。

    ダンプファイルの見方、デバッグの仕方がよく解ってないのですが、ダブルクリックしたらVisualStudio2005が起動してバックトレースを見れましたが、ワトソンログと違っていました。

    アドレスしかないので、実際の関数をntsdとMFC42.DEFで照合すると、

    CWnd::FromHandle

    CWnd::GetOwner()

    CControlBar:SurprisenIdleUpdateCmdUI()

    CWnd:SurprisenWndMsg()

     

    となっています。これは、アイドル時に0x363のメッセージIDで常時呼び出される流れとマッチしています。

    (VC++6.0のデバッグモードで確認できます)ので、こちらのバックトレースの方がワトソンログより正しそうです。そのときのパラメータなどを知る方法がわかりませんが、じっくり調べてみます。

     

     

     

     

     

    2007年8月17日 3:52