Search code examples
c++visual-studio-2010profilerintel-inspector

Intel Inspector inspect dll


I would like to use Intel Inspector to analyze a DLL. This DLL is for a plug-in application. It goes to a extension folder, is is run from another application, mainApp.exe.

However, in Intel Inspector, when I create a new project from UI, the open tab want an application to profile, and only accepts a file with .exe extension.

I cannot compile the sources in a .exe file. This is because i have no main. I must have two other .exe launched to run the DLL: mainApp.exe, then SDKapp.ex, which I run from the menu bar in mainApp. I tried to compile and concretely I get LNK 2019 error, which does not go away changing the Subsystem to Console.

So, should I stay with other profilers such as AQTime, or is there a way to profile my DLL from Intel Inspector.


Solution

  • If DLL should be attached to a process myApp.exe, the target tab application should be myApp.exe.

    Inspector will reveal all memory leaks, including those in the DLL that is launched when myApp.exe is running.

    See more here: https://software.intel.com/en-us/forums/topic/285260

    Well, attaching Intel Inspector to a process at some arbitrary point in its executionand testing a DLL before the app ends are two very different tasks. Whereas in the former, when Intel Inspector begins its analysis it has no clue regarding what came before, what memory allocations were made, where their boundaries lie, or even how many allocations have been made--forget leak testing and bounds testing on any allocations that occurred before the attach. Picking out a particular DLL (or a set) for testing assumes that the tool was there from the beginning (at least of the DLL run) and gives the tool a chance to capture such allocation data over the duration of DLL activities. And coincidentally, Intel just released Intel Inspector XE 2011 for Windows* Update 5 to provide just such a feature:

    Enhanced module inclusion/exclusion capability when configuring projects for analysis - for example, you can inspect specific modules and disable inspection of all other modules, or disable inspection of specific modules and inspect all other modules