I am using Intel Inspector to detect possible memory issues of our application on Windows.
The problem I face is, the inspector doesn't finish its investigation even after 18 hours, I believe it is mainly due to some 3rd part dlls and system dlls.
First solution I tried was:
"inspxe-cl -collect mi3 -module-filter-mode=exclude -module-filter=3rd-party-dll -- <our_app.exe>
But it couldn't complete its analysis even after hours; and couldn't find a simple memory leak I inserted on purpose after I stop the analysis forcefully.
Hence, I took the second approach; instead of excluding, including the dll's of my interest in this way as explained on this page:
"inspxe-cl -collect mi3 -module-filter-mode=include -module-filter="our_app.exe,our_lib1.dll,our_lib2.dll" -- <our_app.exe>
Although this time it could complete the analysis, the simple memory issue is not detected again.
When I dive into config file, inspxe-runmc.log, I see that all of the modules were tagged as "MODULE_LOAD_NO_ANALYSIS", none of them were included succesfully.
On the support page above, it says for the arguments that "A string specifying the name of the application(s), or child application(s), to analyze. Multiple names can be specified as a string of comma-separated values, with no spaces."; but there is somehow an issue in our case.
Could you help with this issue?
Thanks in advance,
Thank you for posting in Intel Communities.
Please can you answer the following questions:
1. What is the version of Intel® Inspector that you are using?
2. Please can you share your O.S details?
3. Please can you explain what kind of application you are trying to analyze?
4. Please can you share the exact steps you followed and a sample reproducer(sample application that is similar to the application you are trying to analyze)?
My answers are as follows:
- The version of Intel Inspector is 2022.3.1
- Windows 10 Enterprise 64 bit, OS build 19044.2251
- It is a C++ project on Visual Studio 2019. It is simply an application code that uses our dlls to connect and acquire images from a camera. The application works correctly with no issues.
- I started analyzer from Visual Studio itself and it took ages. I directly used Intel Inspector GUI with mi3, the same result. Then I have executed the cli commands shared in my previous post. If I include only the "exe", the analysis gets completed in max 2 minutes finding the memory leak I inserted on purpose. If I try to include some of our dll's as explained in the previous message, none of the modules get analyzed; the analysis get completed quite fast without finding the injected leak. We have an issue with adding a number of modules (exe + selected dlls) with the command options "-module-filter-mode=include -module-filter="our_app.exe,our_lib1.dll,our_lib2.dll"". I am attaching the related analysis results to give you more info.
Thanks for sharing the details.
In order to reproduce this issue, we need a sample reproducer consisting exact steps and a sample code which is similar to your code and not the exact code. Once you share this we will try from our end and will let you know our observations .
I will look at if I can prepare a sample code for it to reproduce the issue without sharing our own code. But please be aware that it might not be as trivial as it may sound to you.
Hence, before that, could you tell me if you see any issue with the command line and its parameters?
Have you checked the zip package I shared with you, if so, have you seen any weird logs?
How am I supposed to include multiple modules, exe+dlls?
I wrote here to get some insights from your support according to what I can provide quickly. If your comments still do not help, then I can look at what I can prepare.
As an alternative method can you use 'executable of interest' option in the inspector for executing the executable that you want.
Documentation for executable of interest: https://www.intel.com/content/www/us/en/develop/documentation/inspector-user-guide-windows/top/comma...
You may use "inspxe-cl -collect mi3 -executable-of-interest mymodule -- script", if use a script to launch application (you run our_app from script).
All modules of our_app process will be monitored, including our_app, your dll if they works in same process space.
For you information:
Inspector can detect memory issues in dll module, which was loaded by launching application.
If dll was loaded by child application, you may use option "-executable-of-interest child-program"
Inspector can NOT support dll which is already running. Inspector cannot attach/monitor running modules.
Also please confirm whether the plugin modules are loaded into the process. Please refer the screenshot to see how to check plugin modules are loaded in inspector GUI.
You can the inspector gui through the command