While test-driving Intel Inspector we found out that it will fail to detect memory leaks when multiple Visual C++ runtime versions are loaded in the process.
Has anyone seen this before? Does anyone know if there's a way to point the tool to the specific runtime heap management one wants to inspect.
In our case the exe module is written by us, is compiled with Visual C++ 2008sp1 (MSVCR90.DLL) and brings in a plain C DLL that is built with v2010 (MSVCR100.dll).
Thanks in advance!
What happens if you go into "Project Properties" and in the "Advanced" properties, go to the "Modules" section, and:
Do you get the same results?
Another idea would be to go to the same section, and Exclude the modules you are not interested in. Please give these a try, and let us know if you get better results.
I tried to build a simple test case by using dll (contains 1 leak)) & its caller in different Visual Studio version, but cannot reproduce this problem.
In VS2012 x64 Command Prompt,
cl /Zi /LD mydll.cpp /link ; generate mydll.dll
In VS2010 x64 Command Prompt,
cl /Zi mydll_test.cpp ; generate mydll_test.exe
Run "\Program Files (x86)\intel\Inspector XE 2013\inspxe-vars.bat" ; set Inspector XE's environment
inspxe-cl -collect mi3 -- mydll_test.exe; 1 Memory leak problem(s) detected.
I attached these files, you can try this on your side. Is it your project specific issue?