none
VisualStudio2003で作成したアプリのロードでntdll.dllよりAccessViolationが発生する RRS feed

  • 質問

  • 現在VisualStudio2003(.netFramework1.1)で作成したアプリを

    Windows7で動作させようとすると「Access Violation」(0xc0000005)が発生します。

    VisualStudio2008(.netFramework2.0)で作成した場合は発生しません。

    CrashDumpを見ましたが良くわかりませんでした。

    ***********************************************************************

    Microsoft (R) Windows Debugger Version 6.12.0002.633 X86
    Copyright (c) Microsoft Corporation. All rights reserved.


    User Mini Dump File with Full Memory: Only application data is available

    Symbol search path is: C:\OtherMsBinary;C:\SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols;SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols
    Executable search path is: 
    Windows 7 Version 7601 (Service Pack 1) MP (2 procs) Free x86 compatible
    Product: WinNt, suite: SingleUserTS
    Machine Name:
    Debug session time: Fri Jun 28 15:17:26.000 2013 (UTC + 9:00)
    System Uptime: 0 days 0:02:40.263
    Process Uptime: not available
    ..
    This dump file has an exception of interest stored in it.
    The stored exception information can be accessed via .ecxr.
    (2078.20ac): Access violation - code c0000005 (first/second chance not available)
    eax=00000000 ebx=00000000 ecx=0018f8f4 edx=77e00010 esi=00010000 edi=00002078
    eip=77e0f8b1 esp=0018ef74 ebp=0018eff8 iopl=0         nv up ei pl zr na pe nc
    cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000246
    ntdll!NtWaitForSingleObject+0x15:
    77e0f8b1 83c404          add     esp,4
    0:000> !analyze -v
    *******************************************************************************
    *                                                                             *
    *                        Exception Analysis                                   *
    *                                                                             *
    *******************************************************************************

    *** WARNING: Unable to verify checksum for myApp.exe
    *** ERROR: Module load completed but symbols could not be loaded for myApp.exe
    GetPageUrlData failed, server returned HTTP status 404

    FAULTING_IP: 
    +25
    76b8492d ??              ???

    EXCEPTION_RECORD:  ffffffff -- (.exr 0xffffffffffffffff)
    ExceptionAddress: 76b8492d
       ExceptionCode: c0000005 (Access violation)
      ExceptionFlags: 00000000
    NumberParameters: 2
       Parameter[0]: 00000008
       Parameter[1]: 76b8492d
    Attempt to execute non-executable address 76b8492d

    PROCESS_NAME:  myApp.exe

    ERROR_CODE: (NTSTATUS) 0xc0000005 - "0x%08lx"

    EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - "0x%08lx"

    EXCEPTION_PARAMETER1:  00000008

    EXCEPTION_PARAMETER2:  76b8492d

    WRITE_ADDRESS:  76b8492d 

    FOLLOWUP_IP: 
    ntdll!KiUserApcDispatcher+25
    77e0004d 8b8fcc020000    mov     ecx,dword ptr [edi+2CCh]

    FAILED_INSTRUCTION_ADDRESS: 
    +4392faf01f7df58
    76b8492d ??              ???

    MOD_LIST: <ANALYSIS/>

    NTGLOBALFLAG:  0

    APPLICATION_VERIFIER_FLAGS:  0

    FAULTING_THREAD:  000020ac

    BUGCHECK_STR:  APPLICATION_FAULT_SOFTWARE_NX_FAULT_INVALID

    PRIMARY_PROBLEM_CLASS:  SOFTWARE_NX_FAULT_INVALID

    DEFAULT_BUCKET_ID:  SOFTWARE_NX_FAULT_INVALID

    LAST_CONTROL_TRANSFER:  from 77e0004d to 76b8492d

    STACK_TEXT:  
    WARNING: Frame IP not in any known module. Following frames may be wrong.
    0018f4d0 77e0004d 001c0000 00000000 00000000 0x76b8492d
    0018f810 77e2c578 00000024 00000000 00000000 ntdll!KiUserApcDispatcher+0x25
    0018f904 77e2c3a9 0018f950 01ef01a0 00000000 ntdll!LdrpFindOrMapDll+0x333
    0018fa84 77e2c4d5 0018faec 77ef01a0 00000000 ntdll!LdrpLoadDll+0x2b2
    0018fabc 77e425c5 77ef01a0 00000000 0018faec ntdll!LdrLoadDll+0xaa
    0018fb24 77e424c5 0018fcb0 77e426e1 7efde008 ntdll!LdrpCorInitialize+0x106
    0018fb2c 77e426e1 7efde008 002f248c 7efdd000 ntdll!LdrpCorValidateImage+0x13
    0018fcb0 77e352d6 0018fd24 77df0000 77f5acff ntdll!LdrpInitializeProcess+0xfe2
    0018fd00 77e29e79 0018fd24 77df0000 00000000 ntdll!_LdrpInitialize+0x78
    0018fd10 00000000 0018fd24 77df0000 00000000 ntdll!LdrInitializeThunk+0x10


    SYMBOL_STACK_INDEX:  1

    SYMBOL_NAME:  ntdll!KiUserApcDispatcher+25

    FOLLOWUP_NAME:  MachineOwner

    MODULE_NAME: ntdll

    IMAGE_NAME:  ntdll.dll

    DEBUG_FLR_IMAGE_TIMESTAMP:  4ec49b8f

    STACK_COMMAND:  dt ntdll!LdrpLastDllInitializer BaseDllName ; dt ntdll!LdrpFailureData ; ~0s; .ecxr ; kb

    FAILURE_BUCKET_ID:  SOFTWARE_NX_FAULT_INVALID_c0000005_ntdll.dll!KiUserApcDispatcher

    BUCKET_ID:  APPLICATION_FAULT_SOFTWARE_NX_FAULT_INVALID_BAD_IP_ntdll!KiUserApcDispatcher+25

    Followup: MachineOwner
    ---------

    0:000> kv
    ChildEBP RetAddr  Args to Child              
    0018ef74 77e984d7 00000030 00000001 00000000 ntdll!NtWaitForSingleObject+0x15 (FPO: [3,0,0])
    0018eff8 77e98605 0018f19c 0018f1ec 00000002 ntdll!RtlReportExceptionEx+0x14b (FPO: [Non-Fpo])
    0018f050 77e90f40 0018f19c 0018f1ec 00000002 ntdll!RtlReportException+0x86 (FPO: [Non-Fpo])
    0018f068 77e714e1 0018f09c 0018fce0 77e673bc ntdll!LdrpInitializeProcessWrapperFilter+0x63 (FPO: [Non-Fpo])
    0018f074 77e673bc 00000000 0018fd00 77e1be90 ntdll!_LdrpInitialize+0xef (FPO: [SEH])
    0018f088 77e67261 00000000 00000000 00000000 ntdll!_EH4_CallFilterFunc+0x12 (FPO: [Uses EBP] [0,0,4])
    0018f0b0 77e4b459 fffffffe 0018fcf0 0018f1ec ntdll!_except_handler4+0x8e (FPO: [Non-Fpo])
    0018f0d4 77e4b42b 0018f19c 0018fcf0 0018f1ec ntdll!ExecuteHandler2+0x26 (FPO: [Uses EBP] [5,3,1])
    0018f0f8 77e4b3ce 0018f19c 0018fcf0 0018f1ec ntdll!ExecuteHandler+0x24 (FPO: [5,0,3])
    0018f184 77e00133 0118f19c 0018f1ec 0018f19c ntdll!RtlDispatchException+0x127 (FPO: [Non-Fpo])
    0018f184 76b8492d 0118f19c 0018f1ec 0018f19c ntdll!KiUserExceptionDispatcher+0xf (FPO: [2,0,0]) (CONTEXT @ 0018f1ec)
    WARNING: Frame IP not in any known module. Following frames may be wrong.
    0018f4d0 77e0004d 001c0000 00000000 00000000 0x76b8492d
    0018f810 77e2c578 00000024 00000000 00000000 ntdll!KiUserApcDispatcher+0x25
    0018f904 77e2c3a9 0018f950 01ef01a0 00000000 ntdll!LdrpFindOrMapDll+0x333 (FPO: [Non-Fpo])
    0018fa84 77e2c4d5 0018faec 77ef01a0 00000000 ntdll!LdrpLoadDll+0x2b2 (FPO: [Non-Fpo])
    0018fabc 77e425c5 77ef01a0 00000000 0018faec ntdll!LdrLoadDll+0xaa (FPO: [Non-Fpo])
    0018fb24 77e424c5 0018fcb0 77e426e1 7efde008 ntdll!LdrpCorInitialize+0x106 (FPO: [Non-Fpo])
    0018fb2c 77e426e1 7efde008 002f248c 7efdd000 ntdll!LdrpCorValidateImage+0x13 (FPO: [Non-Fpo])
    0018fcb0 77e352d6 0018fd24 77df0000 77f5acff ntdll!LdrpInitializeProcess+0xfe2 (FPO: [Non-Fpo])
    0018fd00 77e29e79 0018fd24 77df0000 00000000 ntdll!_LdrpInitialize+0x78 (FPO: [Non-Fpo])
    0018fd10 00000000 0018fd24 77df0000 00000000 ntdll!LdrInitializeThunk+0x10 (FPO: [Non-Fpo])
    0:000> .exr 0xffffffffffffffff
    ExceptionAddress: 76b8492d
       ExceptionCode: c0000005 (Access violation)
      ExceptionFlags: 00000000
    NumberParameters: 2
       Parameter[0]: 00000008
       Parameter[1]: 76b8492d
    Attempt to execute non-executable address 76b8492d
    0:000> lmvm ntdll
    start    end        module name
    77df0000 77f70000   ntdll      (pdb symbols)          c:\websymbols\wntdll.pdb\D74F79EB1F8D4A45ABCD2F476CCABACC2\wntdll.pdb
        Loaded symbol image file: ntdll.dll
        Image path: C:\Windows\SysWOW64\ntdll.dll
        Image name: ntdll.dll
        Timestamp:        Thu Nov 17 14:28:47 2011 (4EC49B8F)
        CheckSum:         0014909F
        ImageSize:        00180000
        File version:     6.1.7601.17725
        Product version:  6.1.7601.17725
        File flags:       0 (Mask 3F)
        File OS:          40004 NT Win32
        File type:        2.0 Dll
        File date:        00000000.00000000
        Translations:     0409.04b0
        CompanyName:      Microsoft Corporation
        ProductName:      Microsoft® Windows® Operating System
        InternalName:     ntdll.dll
        OriginalFilename: ntdll.dll
        ProductVersion:   6.1.7601.17725
        FileVersion:      6.1.7601.17725 (win7sp1_gdr.111116-1503)
        FileDescription:  NT Layer DLL
        LegalCopyright:   © Microsoft Corporation. All rights reserved.

    ***********************************************************************

    DEP機能で拒否されているのかと思い、例外設定に入れましたが駄目でした。

    こちらのクラッシュダンプで何かご存知の方、または今後のアプローチ方法に関してご教授いただきたいです。

    2013年7月9日 0:16

すべての返信

  • どのような環境でしょうか? とりあえず.NET Framework 1.1 からの移行には

    Windows 7 と Windows 8 のオペレーティング システムでは、.NET Framework 1.1はサポートされません。

    とあります。実行時にはどのバージョンを使用しているのでしょうか。それ以前に、上記ページを見て、どのような対処を選択したのでしょうか?

    2013年7月9日 1:58
  • 返信ありがとうございます。

    exe.configでsupportedRuntimeを使用して2.0で動作させています。

    (Windows7の場合はデフォルトである.netFramework3.5しかインストールされておりません)

    全てのWindows7環境で発生しているわけではなく、ユーザの9割は動いております(もちろん動作検証も完了しております)。

    私の動作検証環境での再現性がない状況です。


    2013年7月9日 2:26
  • ふと思ったことなのですが.netFramework1.1でビルドされているため32bitプロセスとして起動すると思うのですが

    ロードされているモジュールを確認したところ以下の情報が出力されました。

    ***********************************************************************

    0:000> lm
    start    end        module name
    00400000 0040a000   myApp   (deferred)             
    77df0000 77f70000   ntdll      (pdb symbols)          c:\websymbols\wntdll.pdb\D74F79EB1F8D4A45ABCD2F476CCABACC2\wntdll.pdb
    0:000> !dlls

    0x002f3a80: C:\Test\myApp.exe
          Base   0x00400000  EntryPoint  0x00404b8e  Size        0x0000a000
          Flags  0x00404000  LoadCount   0x0000ffff  TlsIndex    0x00000000
                 LDRP_ENTRY_PROCESSED
                 LDRP_COR_IMAGE

    0x002f3b00: C:\Windows\SysWOW64\ntdll.dll
          Base   0x77df0000  EntryPoint  0x00000000  Size        0x00180000
          Flags  0x00000004  LoadCount   0x0000ffff  TlsIndex    0x00000000
                 LDRP_IMAGE_DLL

    ***********************************************************************

    どんなアプリ(32bit or 64bit)であれ起動時は、C:\Windows\System32\ntdll.dllから

    C:\Windows\SysWOW64\ntdll.dllが呼ばれると思っていたのですが、

    認識違いなのでしょうか?

    2013年7月16日 7:28