0

次のような単純なプログラムの場合:

#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}

次のエラーが表示されます。

     Dr. Memory version 1.6.1
     Running ""C:\Users\********\Documents\Visual Studio 2012\Projects\drmemory\Debug\drmemory.exe""

     Error #1: UNINITIALIZED READ: reading 4 byte(s)
     system call NtClose parameter value #0
         <system call>
     ntdll.dll!ZwClose  
         ??:0
     KERNELBASE.dll!ResumeThread  
         ??:0
     KERNELBASE.dll!CreateDirectoryA
         ??:0
     f_ah.dll!Proc2   
         ??:0
     f_ah.dll!Proc2   
         ??:0
     ntdll.dll!wcsncmp  
         ??:0
     ntdll.dll!EtwEventRegister
         ??:0
     ntdll.dll!LdrUnlockLoaderLock
         ??:0
     ntdll.dll!LdrLoadDll
         ??:0
     NSCCOR03.dll!?           
         ??:0
     KERNEL32.dll!LoadLibraryW
         ??:0

     Error #2: UNINITIALIZED READ: reading 4 byte(s)
     PaperHK.dll!?          
         ??:0
     PaperHK.dll!?          
         ??:0
     PaperHK.dll!?          
         ??:0
     KERNEL32.dll!LoadLibraryW
         ??:0
     NSCCOR03.dll!?           
         ??:0
     f_ah.dll!?       
         ??:0
     f_ah.dll!Proc2   
         ??:0
     ntdll.dll!wcsncmp  
         ??:0
     ntdll.dll!EtwEventRegister
         ??:0
     ntdll.dll!LdrUnlockLoaderLock
         ??:0
     ntdll.dll!LdrLoadDll
         ??:0
     NSCCOR03.dll!?           
         ??:0

     Error #3: UNADDRESSABLE ACCESS: reading 4 byte(s)
     f_ah.dll!?       
         ??:0
     KERNELBASE.dll!SetFilePointer
         ??:0
     ntdll.dll!RtlImageDirectoryEntryToData
         ??:0
     ntdll.dll!RtlImageDirectoryEntryToData
         ??:0
     ntdll.dll!LdrGetProcedureAddressEx
         ??:0
     ntdll.dll!LdrGetProcedureAddressEx
         ??:0
     ntdll.dll!RtlRunOnceBeginInitialize
         ??:0
     ntdll.dll!LdrGetProcedureAddressEx
         ??:0
     ntdll.dll!NtWriteFile
         ??:0
     KERNELBASE.dll!WriteFile     
         ??:0
     KERNELBASE.dll!WriteFile     
         ??:0
     KERNEL32.dll!GetSystemTime
         ??:0

     Error #4: UNINITIALIZED READ: reading 4 byte(s)
     PaperHK.dll!?          
         ??:0
     PaperHK.dll!?          
         ??:0
     PaperHK.dll!?          
         ??:0
     KERNEL32.dll!LoadLibraryW
         ??:0
     NSCCOR03.dll!?           
         ??:0
     ICATCDLL.dll!?           
         ??:0
     ntdll.dll!RtlReleaseRelativeName
         ??:0
     ntdll.dll!RtlRunOnceBeginInitialize
         ??:0
     ntdll.dll!RtlReleaseRelativeName
         ??:0
     ntdll.dll!RtlUnicodeStringToAnsiString
         ??:0
     KERNELBASE.dll!GetVersionExA 
         ??:0
     KERNELBASE.dll!GetVersionExA 
         ??:0

     Error #5: UNINITIALIZED READ: reading register eax
     f_sps.DLL!DllUnregisterServer
         ??:0
     USER32.dll!IsWindow  
         ??:0
     f_sps.DLL!DllUnregisterServer
         ??:0
     f_sps.DLL!DllUnregisterServer
         ??:0
     ntdll.dll!wcsncmp  
         ??:0
     ntdll.dll!EtwEventRegister
         ??:0
     ntdll.dll!LdrUnlockLoaderLock
         ??:0
     ntdll.dll!LdrLoadDll
         ??:0
     NSCCOR03.dll!?           
         ??:0
     KERNEL32.dll!LoadLibraryW
         ??:0
     NSCCOR03.dll!?           
         ??:0
     ntdll.dll!ZwTestAlert
         ??:0

     Error #6: UNINITIALIZED READ: reading 4 byte(s)
     system call NtClose parameter value #0
         <system call>
     ntdll.dll!ZwClose  
         ??:0
     KERNELBASE.dll!ResumeThread  
         ??:0
     KERNELBASE.dll!CreateDirectoryA
         ??:0
     f_acc.dll!Proc3    
         ??:0
     ntdll.dll!wcsncmp  
         ??:0
     ntdll.dll!EtwEventRegister
         ??:0
     ntdll.dll!LdrUnlockLoaderLock
         ??:0
     ntdll.dll!LdrLoadDll
         ??:0
     NSCCOR03.dll!?           
         ??:0
     KERNEL32.dll!LoadLibraryW
         ??:0
     NSCCOR03.dll!?           
         ??:0

     Error #7: UNINITIALIZED READ: reading 4 byte(s)
     PaperHK.dll!?          
         ??:0
     PaperHK.dll!?          
         ??:0
     PaperHK.dll!?          
         ??:0
     KERNEL32.dll!LoadLibraryW
         ??:0
     NSCCOR03.dll!?           
         ??:0
     USER32.dll!IsWindow  
         ??:0
     f_sps.DLL!DllUnregisterServer
         ??:0
     f_sps.DLL!DllUnregisterServer
         ??:0
     ntdll.dll!wcsncmp  
         ??:0
     ntdll.dll!EtwEventRegister
         ??:0
     ntdll.dll!LdrUnlockLoaderLock
         ??:0
     ntdll.dll!LdrLoadDll
         ??:0

     Error #8: UNINITIALIZED READ: reading 4 byte(s)
     NSCCOR03.dll!?           
         ??:0
     NSCCOR03.dll!?           
         ??:0
     NSCCOR03.dll!?           
         ??:0
     f_sps.DLL!DllUnregisterServer
         ??:0
     KERNEL32.dll!LoadLibraryW
         ??:0
     NSCCOR03.dll!?           
         ??:0
     f_sps.DLL!DllUnregisterServer
         ??:0
     ntdll.dll!RtlUnicodeStringToAnsiString
         ??:0
     KERNELBASE.dll!GetVersionExA 
         ??:0
     KERNELBASE.dll!GetVersionExA 
         ??:0
     f_sps.DLL!DllUnregisterServer
         ??:0
     ntdll.dll!RtlImageDirectoryEntryToData
         ??:0

     Error #9: UNINITIALIZED READ: reading 4 byte(s)
     PaperHK.dll!?          
         ??:0
     PaperHK.dll!?          
         ??:0
     PaperHK.dll!?          
         ??:0
     f_sps.DLL!DllUnregisterServer
         ??:0
     KERNEL32.dll!LoadLibraryW
         ??:0
     NSCCOR03.dll!?           
         ??:0
     f_sps.DLL!DllUnregisterServer
         ??:0
     ntdll.dll!RtlUnicodeStringToAnsiString
         ??:0
     KERNELBASE.dll!GetVersionExA 
         ??:0
     KERNELBASE.dll!GetVersionExA 
         ??:0
     f_sps.DLL!DllUnregisterServer
         ??:0
     ntdll.dll!RtlImageDirectoryEntryToData
         ??:0

     Error #10: UNINITIALIZED READ: reading 4 byte(s)
     ICATCDLL.dll!Ordinal1    
         ??:0
     ICATCDLL.dll!Ordinal1    
         ??:0
     ICATCDLL.dll!Ordinal1    
         ??:0
     f_sps.DLL!DllUnregisterServer
         ??:0
     KERNEL32.dll!LoadLibraryW
         ??:0
     NSCCOR03.dll!?           
         ??:0
     f_sps.DLL!DllUnregisterServer
         ??:0
     ntdll.dll!RtlUnicodeStringToAnsiString
         ??:0
     KERNELBASE.dll!GetVersionExA 
         ??:0
     KERNELBASE.dll!GetVersionExA 
         ??:0
     f_sps.DLL!DllUnregisterServer
         ??:0
     ntdll.dll!RtlImageDirectoryEntryToData
         ??:0

     Error #11: UNINITIALIZED READ: reading 4 byte(s)
     ICDCNL.dll!?         
         ??:0
     ICDCNL.dll!?         
         ??:0
     ICDCNL.dll!?         
         ??:0
     f_sps.DLL!DllUnregisterServer
         ??:0
     KERNEL32.dll!LoadLibraryW
         ??:0
     NSCCOR03.dll!?           
         ??:0
     f_sps.DLL!DllUnregisterServer
         ??:0
     ntdll.dll!RtlUnicodeStringToAnsiString
         ??:0
     KERNELBASE.dll!GetVersionExA 
         ??:0
     KERNELBASE.dll!GetVersionExA 
         ??:0
     f_sps.DLL!DllUnregisterServer
         ??:0
     ntdll.dll!RtlImageDirectoryEntryToData
         ??:0

     Error #12: UNINITIALIZED READ: reading 4 byte(s)
     PaperHK.dll!?          
         ??:0
     PaperHK.dll!?          
         ??:0
     PaperHK.dll!?          
         ??:0
     KERNEL32.dll!LoadLibraryW
         ??:0
     NSCCOR03.dll!?           
         ??:0
     ntdll.dll!ZwTestAlert
         ??:0
     ntdll.dll!RtlImageDirectoryEntryToData
         ??:0
     ntdll.dll!RtlImageDirectoryEntryToData
         ??:0
     ntdll.dll!LdrGetProcedureAddressEx
         ??:0
     ntdll.dll!LdrGetProcedureAddressEx
         ??:0
     ILT+110(_wmainCRTStartup)
         ??:0
     ntdll.dll!RtlInitializeExceptionChain
         ??:0

     Error #13: UNINITIALIZED READ: reading 1 byte(s)
     PaperHK.dll!?          
         ??:0
     PaperHK.dll!?          
         ??:0
     PaperHK.dll!?          
         ??:0
     PaperHK.dll!?          
         ??:0
     PaperHK.dll!?          
         ??:0
     PaperHK.dll!?          
         ??:0
     PaperHK.dll!?          
         ??:0
     PaperHK.dll!?          
         ??:0
     PaperHK.dll!?          
         ??:0
     PaperHK.dll!?          
         ??:0
     PaperHK.dll!?          
         ??:0
     PaperHK.dll!?          
         ??:0

     Error #14: LEAK 128 bytes 
     replace_malloc 
         d:\drmemory_package\common\alloc_replace.c(2292):
     f_ah.dll!Proc2   
         ??:0
     ntdll.dll!wcsncmp  
         ??:0
     ntdll.dll!EtwEventRegister
         ??:0
     ntdll.dll!LdrUnlockLoaderLock
         ??:0
     ntdll.dll!LdrLoadDll
         ??:0
     NSCCOR03.dll!?           
         ??:0
     KERNEL32.dll!LoadLibraryW
         ??:0
     NSCCOR03.dll!?           
         ??:0
     ILT+110(_wmainCRTStartup)
         ??:0
     ntdll.dll!RtlInitializeExceptionChain
         ??:0
     ntdll.dll!RtlInitializeExceptionChain
         ??:0

     Error #15: LEAK 260 bytes 
     replace_operator_new_nomatch
         d:\drmemory_package\common\alloc_replace.c(2544):
     f_ah.dll!Proc2   
         ??:0
     f_ah.dll!Proc2   
         ??:0
     ntdll.dll!wcsncmp  
         ??:0
     ntdll.dll!EtwEventRegister
         ??:0
     ntdll.dll!LdrUnlockLoaderLock
         ??:0
     ntdll.dll!LdrLoadDll
         ??:0
     NSCCOR03.dll!?           
         ??:0
     KERNEL32.dll!LoadLibraryW
         ??:0
     NSCCOR03.dll!?           
         ??:0
     ILT+110(_wmainCRTStartup)
         ??:0
     ntdll.dll!RtlInitializeExceptionChain
         ??:0

     Error #16: LEAK 260 bytes 
     replace_operator_new_nomatch
         d:\drmemory_package\common\alloc_replace.c(2544):
     f_ah.dll!Proc2   
         ??:0
     f_ah.dll!Proc2   
         ??:0
     ntdll.dll!wcsncmp  
         ??:0
     ntdll.dll!EtwEventRegister
         ??:0
     ntdll.dll!LdrUnlockLoaderLock
         ??:0
     ntdll.dll!LdrLoadDll
         ??:0
     NSCCOR03.dll!?           
         ??:0
     KERNEL32.dll!LoadLibraryW
         ??:0
     NSCCOR03.dll!?           
         ??:0
     ILT+110(_wmainCRTStartup)
         ??:0
     ntdll.dll!RtlInitializeExceptionChain
         ??:0

     Error #17: LEAK 260 bytes 
     replace_operator_new_nomatch
         d:\drmemory_package\common\alloc_replace.c(2544):
     f_ah.dll!Proc2   
         ??:0
     f_ah.dll!Proc2   
         ??:0
     ntdll.dll!wcsncmp  
         ??:0
     ntdll.dll!EtwEventRegister
         ??:0
     ntdll.dll!LdrUnlockLoaderLock
         ??:0
     ntdll.dll!LdrLoadDll
         ??:0
     NSCCOR03.dll!?           
         ??:0
     KERNEL32.dll!LoadLibraryW
         ??:0
     NSCCOR03.dll!?           
         ??:0
     ILT+110(_wmainCRTStartup)
         ??:0
     ntdll.dll!RtlInitializeExceptionChain
         ??:0

     ERRORS FOUND:
           1 unique,     1 total unaddressable access(es)
          12 unique,   456 total uninitialized access(es)
           0 unique,     0 total invalid heap argument(s)
           0 unique,     0 total GDI usage error(s)
           0 unique,     0 total warning(s)
           4 unique,     4 total,    908 byte(s) of leak(s)
           0 unique,     0 total,      0 byte(s) of possible leak(s)
     Details: C:\Users\******\AppData\Roaming\Dr. Memory\DrMemory-drmemory.exe.58248.000\results.txt

3 台の異なる PC でテストしましたが、すべての PC で問題を再現できます。

問題は、メモリを管理する ntdll.dll にあると思われます (?)。問題を解決するためのヘルプ/ポインタは大歓迎です。

-サティシュ

4

1 に答える 1

1

f_ah.dll、PaperHK.dll、f_sps.DLL、NSCCOR03.dll など、オペレーティング システムが提供しないライブラリが多数あります。これらはアプリケーションの一部ではありません。それらはおそらく、マシンにインストールした他のソフトウェアからのものです (余談ですが、この小さなアプリケーションにこれほど多くのライブラリが挿入されていることはかなり気がかりです。そのような侵襲的なソフトウェアをマシンで実行する必要があるかどうかを調査することをお勧めします)。これらのエラーは、この特定のソフトウェアがインストールされているマシンでのみ発生するため、Dr. Memory の開発者はこれまでにこれらのエラーを見たことがありません。

これらのライブラリのパスを Dr. Memory の -lib_blacklist オプションに追加して、これらのライブラリからのすべてのレポートを無視する必要があります。たとえば、f_ah.dll と f_sps.DLL へのパスが c:\Program Files\foo\ で、その他のパスが c:\Program Files\bar\ であると仮定すると、次のオプションを使用して Dr. Memory を実行できます。

-lib_blacklist "c:\windows\syswow64\*.d??,c:\Program Files\foo\*.dll,c:\Program Files\bar\*.dll"

Dr. Memory は、上位 4 フレームがこれらのライブラリのいずれかに由来するエラー レポートを非表示にします。

これらのエラーは誤検知である可能性があるため、Dr. Memory の問題トラッカーにバグを報告して、開発者にこれらのエラーを確認するよう依頼することもできます。再現するのに十分な情報を提供してください (特に、これらのライブラリがどのアプリケーションからのものか)。

于 2014-02-27T23:10:00.013 に答える