Reputation: 55
I am using MinGW for the 64 bit platform to compile a simple c++ test application:
g++ -g3 -c test.cpp
g++ test.o -o test
With the -g3 flag test.exe should now contain all necessary symbol information for profiling it... is this correct?
When I make a hotspot analysis with VTune Amplifyer XE it shows me a callstack like this:
test.exe![test.exe] - [Unknown]
test.exe![test.exe]+0x15fa - [Unknown]
test.exe![test.exe]+0x13cd - [Unknown]
test.exe![test.exe]+0x14e7 - [Unknown]
kernel32.dll!BaseThreadInitThunk+0x1f33c - [Unknown]
ntdll.dll!RtlUserThreadStart+0x32ca0 - [Unknown]
When clicking on one of these items it shows me assembly code and for the top most element it says: "Failed to show source and assembly code".
This doesn't change, if I specify the source code/binary directory in the VTune project settings.
How should I compile my program or set up VTune in order to get more meaningful results?
Upvotes: 0
Views: 807
Reputation: 126
VTune can profile mingw targets starting from 2013 Update 7 - http://software.intel.com/en-us/articles/whats-new-update-7-intel-vtune-amplifier-xe-2013#Update7Anchor3
Upvotes: 2
Reputation: 55
The reason for this is, that currently only the linux version of VTune supports standard debug formats like f.e. dwarf. The windows version only understands the microsoft PDB files. Apparently supporting dwarf is a feature request for the windows version (see this thread).
Upvotes: 0