So it only offers to instrument module imports. Other DLL's we load in the same folder are marked as 'User DLL's and I'm able to fully instrument them. Why does it think this one DLL is a system DLL? The app loading it is instrumented (All functions) and other DLL's I load give me the option of how much to instrument.
I have tried renaming it, rebuilding it but I can't get it to instrument. Any ideas?
Sorry, it's Thread Checker I'm trying to use - the profiler works ok.
My DLL is at the default base of 400000, so it may be getting relocated higher up. There is no standard that says anything above 0x70000000 is a system DLL many system DLL's are rebased lower than this (All the D3D DLL's for example).
In the 'Configure Intel Thread Checker' dialog, the Level for my DLL says 'module imports' and when I right click and try and change this I get a warning in the Status column and results window that says 'Full Instrumentation not applicable'.
Is it saying this because it thinks it's a system DLL?
I got it working - the help file is actually pretty good - it's just hidden behind the 'more help' button. It was the fact that the DLL gets rebased high causing Thread Checker to think it's a system DLL - I had to try rebasing it at a number of different addresses before I managed to get Thread Checker happy - it would be great to remove this limitation or have an option to force the instrumentation.
Thread Checker turned out to be not very helpful for our application. We only have a tiny number of critical sections and insteadresolve all our thread dependencies via reference counts and lock free lists - Thread Checker didn't tolike the factthat one thread was using data after another thread has used it - which was fine in our aqrchitecture because the threads only ran once their dependencies we met. I guess for applications that wrap all shared data in CriticalSections maybe this works better. I looked through a few hundred errors and didn't see any real threading issues :-( doh oh well, it was pretty and worked well (once I rebased).