- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
I am using VTune Amplifier XE 2013 to find performance bottlenecks in the software our company develops.
Recently I encountered a crash of our own software during a VTune basic hotspots analysis. (The crash does not appear without having VTune attached.) I get a Windows dialog telling me that the software is not working anymore, giving the problem signature "BEX64".
I have conducted a few tests and found:
- The problem also appears when I disable my virus scanner. There is no 3rd party firewall installed (only the Windows-internal one).
- The problem also appears when I use only 1 display.
- I have tried VTune 2013 Update 12 and Update 14; the problem occurs in both.
- There is no crash when I use the "advanced hotspots analysis". However, this is no option for me, because I get no backtraces and therefore no hierarchical view in the top-down analysis when I use the advanced method.
My system:
- Windows 7 enterprise 64 bit, SP1
- Dell Workstation T7500: Xeon [email protected] GHz, 24 GB RAM
Can anyone help?
링크가 복사됨
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
I just found out that when I use software rendering in my application (normally I use hardware rendering with OpenGL) the crashes do not appear.
If I find out which OpenGL feature causes the crash, I will post it here.
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
I hadn't found the VTune forum at the first glance. If I am able to move the post there, can you tell me how?
Regarding the dump file: Our application has registered a callback so that we write out the minidumps inside a crash handler of our application. (Thus Windows does not create a minidump.) The minidump created by our application is empty (I guess the one Windows would have created would be empty, too), so it makes so sense posting it. Normally these minidumps are really full of information, but with this specific crash it's not. :-( We have had others OpenGL-related crashes before which resulted in no backtraces / empty minidumps.
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Regarding the idea of moving your post to VTune forum , simply create new thread in that forum.
Can you enable the handling of minidump file creation?I mean remove the callback and let the Windows mechanism try to create a dump file?
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Can you verify if your software crashes if you work VTune with application in command line?
For example - "amplxe-cl -collect hotspots -- your_application"
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Hi Peter,
interesting, it seems as if with VTune command line mode my app does not crash (at least not as often as before - i.e. for now, I couldn't reproduce the crash in cmd line mode).
This could be an interesting workaround for me, but to better filter out the time slot which I really want to measure (and to not waste memory measuring application load time and test preparation) I would like to have VTune attached to a running process... it this also possible in command line mode?
Best regards,
Hagen
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Hello Hagen:
Also, don't overlook the fact that you *can* collect callstacks with Advanced Hotspots and, therefore, get your "backtraces". This may be another option.
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
@MrAnderson: Thanks for the hint. I have simply overlooked the radio buttons which enable me to collect stacks and even call counts. (Btw: I would suggest to enable "Hotspots, stacks and context switches" or even the call counts option by default instead of setting "Hotspots only" as default. Reason: with "Hotspots only", the advanced analysis is even less advanced than the basic analysis.) But most interesting for me: in the advanced mode incl. stack traces, my software does not crash, while it does crash in basic mode. Are internal VTune code paths different between basic analysis and "advanced analysis with stack trace"?
@Iliyapolak: I don't clearly understand. How do I check if there is something wrong with DLL injection or reading process memory? How do I "set a windbg"?
However, in the whole I can say at this moment that I'm happy, because I can simply use the advanced analysis now to prevent those crashes.
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
@Hagen
Sorry for providing confusing information.Disregard that sentence which is related to dll injection.
You can set windbg for postmortem debugging by using command line switch.Simply navigate to your windbg folder and issue this command:
windbg -I
Relevant link: http://msdn.microsoft.com/en-us/library/windows/hardware/ff542967(v=vs.85).aspx
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
@iliyapolak: The thing is that the only information I get (which Windows tells me) is that "the application does not work anymore". So I cannot figure out what is really happening or if it's an access violation or sth else.
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Can you search for minidump files on your machine?You can look in Windows directory or in Windows\System32 directory.
Btw. I fear that you disabled or interferd with a minidump generation mechanism.
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Hi Iliyapolak,
that has been discussed more above in this thread: Yes, our application catches those exception and handles minidump generation by itself. I have as a test disabled this mechanism to let Windows generate the minidumps. The result was that there was no minidump created by Windows. We have experienced such strange behaviour before when dealing with NVidia driver crashes. It sounds bad to have no dump at all, but it seems as if this really can happen...
Regards, Hagen