oneiric / vld

Visual Leak Detector for Visual C++ 2019
GNU Lesser General Public License v2.1
112 stars 35 forks source link

Access violations as application exits ... #5

Open perdrix52 opened 3 years ago

perdrix52 commented 3 years ago

I am getting lots of access violations as my application exits which appear to be related to VLD.

Exception thrown at 0x0000000056684361 (dbghelp.dll) in DeepSkyStacker.exe: 0xC0000005: Access violation reading location 0x0000000000000000. Exception thrown at 0x0000000056684361 (dbghelp.dll) in DeepSkyStacker.exe: 0xC0000005: Access violation reading location 0x0000000000000000. WARNING: Visual Leak Detector detected memory leaks! ---------- Block 159 at 0x00000000FDB168A0: 68 bytes ---------- Leak Hash: 0x612183FC, Count: 1, Total 68 bytes Call Stack (TID 9388): Exception thrown at 0x0000000056684361 (dbghelp.dll) in DeepSkyStacker.exe: 0xC0000005: Access violation reading location 0x0000000000000000. Exception thrown at 0x0000000056684361 (dbghelp.dll) in DeepSkyStacker.exe: 0xC0000005: Access violation reading location 0x0000000000000000. D:\a01_work\6\s\src\vctools\VC7Libs\Ship\ATLMFC\Src\MFC\afxmem.cpp (335): mfc140ud.dll!operator new[]() C:\Users\amonra\Documents\GitHub\DSS\DeepSkyStacker\qmfcapp.cpp (318): DeepSkyStacker.exe!0x00000001401D0831() + 0x19 bytes C:\Users\amonra\Documents\GitHub\DSS\DeepSkyStacker\DeepSkyStacker.cpp (193): DeepSkyStacker.exe!0x000000014011FEE6() C:\Users\amonra\Documents\GitHub\DSS\DeepSkyStacker\DeepSkyStacker.cpp (337): DeepSkyStacker.exe!wWinMain() d:\agent_work\63\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl (123): DeepSkyStacker.exe!invoke_main() d:\agent_work\63\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl (288): DeepSkyStacker.exe!__scrt_common_main_seh() + 0x5 bytes d:\agent_work\63\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl (331): DeepSkyStacker.exe!__scrt_common_main() d:\agent_work\63\s\src\vctools\crt\vcstartup\src\startup\exe_wwinmain.cpp (17): DeepSkyStacker.exe!wWinMainCRTStartup() KERNEL32.DLL!BaseThreadInitThunk() + 0x14 bytes ntdll.dll!RtlUserThreadStart() + 0x21 bytes Data: 22 43 3A 5C 55 73 65 72 73 5C 61 6D 6F 6E 72 61 "C:\User s\amonra 5C 44 6F 63 75 6D 65 6E 74 73 5C 47 69 74 48 75 \Documen ts\GitHu 62 5C 44 53 53 5C 78 36 34 5C 44 65 62 75 67 5C b\DSS\x6 4\Debug\ 44 65 65 70 53 6B 79 53 74 61 63 6B 65 72 2E 65 DeepSkyS tacker.e 78 65 22 00 xe"..... ........

Exception thrown at 0x0000000056684361 (dbghelp.dll) in DeepSkyStacker.exe: 0xC0000005: Access violation reading location 0x0000000000000000. Exception thrown at 0x0000000056684361 (dbghelp.dll) in DeepSkyStacker.exe: 0xC0000005: Access violation reading location 0x0000000000000000.

Any ideas?

Thanks David

perdrix52 commented 3 years ago

image

perdrix52 commented 3 years ago

I replaced the x64 debughlp.dll that was in C:\Program Files (x86)\Visual Leak Detector\bin\Win64 with a more recent version which I copied from C:\Program Files (x86)\Windows Kits\10\Debuggers\x64 on my system:

image

and the exceptions no longer occur.

num3ric commented 3 years ago

This also occurred to me just now after I enabled /DEBUG:FULL to get symbols to display correctly, however the fix you mentioned above worked.

perdrix52 commented 3 years ago

Is it worth dropping a new release?

BengtGustafsson commented 3 years ago

I tried copying the most recent dbghelp.dll into the VLD install directory and while it prevents the crashes reported it is not able to extract the function names from the PDB files, so the call stacks only contain the module name and the address. This was a slightly newer dll than perdrix52 used: 10.0.19041.867 which I found in c:\Windows\system32.

I then tried exactly the 10.0.18362.1 version but then I don't get any call stacks at all.

This was using VS 2019 ver 16.8.4

The same setup worked fine with older compilers + older VLD versions. Unfortunately I don't know when it stopped working.

Anyone else having these problems with newer compiler versions?