I'm attempting to profile an application on Windows XP SP3 using vtune.
Myapplication .exe is just a veneer, it does an explicit LoadLibrary of a given .dll, then calls into it.
If I do a callgraph profile giving just the .exe as the module of interest, this work Ok but reveals nothing
of interest. So I am adding my .dll as a module of interest, but then I get the error message
Error in module "corelib.dll" - Module is an instrumented module.
and profiling fails.
I've attempted this via both the GUI version of vtune and via a set of vtl.exe command lines,
both of which produce the same error.
What does this error mean ?
How do I get around this issue ?
I don't know if your dll has managed code (like C#) - thus, you have to use .NETcall graph profiling.
I assume that additional "corelib.dll" is user'sdll, in interest of modules list. So you can do static instrumentation in Call Graph Configure.
Call graph will copy (save) original user's dll to Call Graph Cache, andput instrumented dll in original place. Then start data collection. After completing data collection, copy original dll to original directory. I don't know if your dll is instrumented in original directory, so it can't be instrumented again. (Abnormally aborted Call graph?)
So clean up Call graph cache, and try static instrumentation again...
Thanks, these hints sorted me out.
No I'm not using managed code, just vanilla C
The problem seems to have been that the instrumentation phase corrupted my dll or the cache in
some way, so all future runs failed with this less than helpful error message.
I blew away C:\TEMP\Cache and my exe's and dll's and rebuilt everything, and profiling started working.
Thanks again for your help,