对于一个简单的程序如下:
#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
我已经在三台不同的PC上测试了它,我可以在所有PCS中重现这个问题。
我怀疑问题可能出在ntdll.dll管理内存(?)上。 任何有关解决问题的帮助/指示都表示赞赏。
-Satish
答案 0 :(得分: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的问题跟踪器中提交一个错误,要求开发人员查看这些错误,因为它们可能是误报。提供足够的信息来重现(特别是这些库来自哪些应用程序)。