- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm attempting to profile a C++ DLL on Vista/x64. I am building the DLL optimized, with debug information enabled. However, when I attempt to run a Call Graph activity in VTune 9.0, only "exports instrumentation" is performed.
If I right-click on the activity and select "Modify Collectors", I can see my DLL listed, with a "Yes" in the "Debug Info" column.
However, the "Module Type" value says "System", and this is apparently preventing me from selecting "All Functions" instrumentation.
Our project also supports x86 platforms; when my colleagues running on Vista/x86 bring up the "Modify Collectors" dialog, the DLL of interest is listed as being a "User DLL".
What causes VTune to decide a module is "System" and not "User"?
Best regards,
Chris
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
VTune instrumentation engine decides a module is system if its preferred base address belongs to system address range.
Right now it supports singe system address range and it is defined as 0x60000000 7FFFFFFF
FFFFFFFF for x64. Probably while linking your image you've changed default base address.
regards, Andrei
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Andrei,
Many thanks! I have been able to get function-level profiling going by setting "Linker->Advanced->Base Address" to 0x00000000_20000000 in Visual Studio and creating a new activity in VTune. (I tried deleting VTune's cache, but it still remembered my DLL as being a "System" DLL. Exiting VTune, re-launching it and creating the new activity seemed to make VTune forget its earlier analysis.)
Also, I think we areusing the default VS linker settings (there is no /BASE directive in the command line, although there is a /SUBSYSTEM:WINDOWS). When I used LINK.EXE to inspectourDLL, the base address was given as 0x00000001_80000000, which would map to the "system" range according to your numbers. This is with VS2005 version 8.0.50727.867 (vsvista.050727-8600).
Again, thanks for solving this.
Chris
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
We've included the fix for this problem to VTune 9.0 update 3.The new system ranges are 0x58000000-0xFFFFFFFF for IA32 and two ranges - 0x0000000070000000-0x000000007FFFFFFF and 0x000007FF50000000-0x000007FF7FFFFFFF for Intel 64.
So we can recommend you to evaluate VTune 9.0 Update 3.
regards, Andrei
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page