- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Regards,
Andreas
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
[SergeyK] I'm not sure that this is correct.
I attached the log file to provide more information. Can you tell, what the problem is?
Here is your XML-log:
[SergeyK] What is 'nvinit.dll'? Is it a 32-bit DLLfrom NVIDIA?
[SergeyK] This is a warning, not anerror.The applicationwillcrash laterbecause of an Access Violation.
[SergeyK] -1073741819 = 0xC0000005 - Access Violation
I see that some DLLs are loaded from '..\Windows\syswow64' folder. Are you trying to inspect a 32-bit
application on a64-bit Windows? Please take a look atMSDN article 'How Can I Debug Access Violations
When Running My Program Outside the Debugger?' and try to run the application without Intel Inspector XE.
[SergeyK] Are you trying toload any 64-bit DLLs from your 32-bit application?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It is the D3D shim driver from nvidia. I don't know if its 32 or 64 bit, but since it is locatet in SysWOW64 and I'm working on 64-bit Windows7 I would suspect, that its a 64 bit driver ...
[SergeyK] -1073741819 = 0xC0000005 - Access Violation
I see that some DLLs are loaded from '..\Windows\syswow64' folder. Are you trying to inspect a 32-bit
application on a64-bit Windows? Please take a look atMSDN article 'How Can I Debug Access Violations
When Running My Program Outside the Debugger?' and try to run the application without Intel Inspector XE.
Yes, I'm working on 64-bit Windows7 but the target application is 32-bit. I forgot to mention that the application is developed with g++ 4.4 for MinGW, and I don't use VisualStudio. Is there a possibility to activate the just in time debugging option (as described in the MSDN article you proposed) without visual studio? The article seems to be specific to visual studio!
Outside the Intel Inspector XE the application does not crash.
[SergeyK] Are you trying toload any 64-bit DLLs from your 32-bit application?
none that I'm aware of ... but I'll double check that.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
>>
>>It is the D3D shim driver from nvidia. I don't know if its 32 or 64 bit, but since it is locatet in SysWOW64
>>and I'm working on 64-bit Windows7 I would suspect, that its a 64 bit driver
1. Please take a look atMSDNfor some technical details on WOW64with search expressions:
'Platform SDK: 64-bit Windows Programming'
and
'WOW64'
>>...the application is developed with g++ 4.4 for MinGW, and I don't use Visual Studio...
2. I would try to use 'DebugBreak' Win32 API function as early as possible in your applicationto
activate a Debugger. What Debugger do you have?
>>...Outside the Intel Inspector XE the application does not crash.
3. Thesearequestions to Intel:
Do you use any codeinjecting techniques in Inspector XEin order to intercept calls to some functions,
like Win32 API functions, etc?
If Yes, what if it doesn't work properly when a 32-bit application is executed on a 64-bit platform?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It is the D3D shim driver from nvidia. I don't know if its 32 or 64 bit, but since it is locatet in SysWOW64 and I'm working on 64-bit Windows7 I would suspect, that its a 64 bit driver ...
Could you look at 'Properties' of the 'nvinit.dll' filein theWindows Explorer?
You could also contact NVIDIA for more technical details.
I didn't try this but it is possible to do this:
Test-Case 1:
- Let's assume that there is a 32-bit application for aWindows platform
- Try to load 'nvinit.dll' with 'LoadLibrary'function
- If it fails a call to 'GetLastError'functioncould provide some technical details and possibly
'nvinit.dll' is a64-bit DLL (a 64-bit DLL can't be usedin a 32-bit application )
Test-Case 2:
- Let's assume that there is a 64-bit application for a64-bit Windows platform
- Try to load 'nvinit.dll' with 'LoadLibrary' function
- If it fails a call to 'GetLastError'functioncould provide some technical details and possibly
'nvinit.dll' is a32-bit DLL (a 32-bit DLL can't be used in a 64-bit application )
It is assumed that all dependent modulesfor 'nvinit.dll' are properly installed and present on a system.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for pointing out my misunderstanding of WOW64. It is the 32-bit emulator that allows 32-bit applications to run on 64-Bit OS and Hardware. So everything inside the SysWOW64 folder should be 32-bit versions.
The properties of nvinit.dll do not specify whether the driver is 32 or 64 bit. The details tab gives a short description (shim initialization) and a Version number. I will contact nvidia about this. Additionally, if I find the time I will try the two test-cases that you described.
Also thanks for pointing out the DebugBreak API function. I will try to integrate it in the application! BTW. I'm using gdb on minGW as a debugger (with QT-Creator as a frontend). When I want to call DebugBreak after SEGV I will need to specify a Signal handler and call the function from this handler, right? Or does Windows provide another way to achieve this?
Regards,
Andreas
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
[SergeyK] That's correct.
...
Also thanks for pointing out the DebugBreak API function. I will try to integrate it in the application! BTW. I'm using gdb on minGW as a debugger (with QT-Creator as a frontend). When I want to call DebugBreak after SEGV I will need to specify a Signal handler and call the function from this handler, right? Or does Windows provide another way to achieve this?
[SergeyK] I would try to calltheDebugBreak function in order to see how gdb will handle it.
Best regards,
Sergey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
When I want to call DebugBreak after SEGV I will need to specify a Signal handler and call the function from this handler, right? Or does Windows provide another way to achieve this?
[SergeyK] Microsoft Platform SDK has several examples related to debugging techniques. Take a
look at
...
Best regards,
Sergey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I finally could try the approach to start a debugger upon access violation but to no avail!
It Seems Intel Inspector catches these kind of exceptions itself, so no debugger will get started.
Without Inspector the application does not crash!
Does anyone have some suggestions? (Intel staff perhaps ???)
I'm running out of time with my evaluation period, so quick help would be appreciated ... I surely could convince the right people to buy the Inspector SW, if it would help me find issues in my code ... the way it is now I don't see a chance ...
Regards,
Andreas
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Mark
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page