Analyzers
Talk to fellow users of Intel Analyzer tools (Intel VTune™ Profiler, Intel Advisor)
4975 Discussions

Error detected during analysis Internal error. Please contact Intel customer support team.

Andreas_Lagemann
Beginner
1,103 Views
While trying to find some threading issues in my application using Inspector XE with evaluation license, I encountered the message seen in the title. It's a QT console application, and the error occurs right at the start of the application, when some QT Objects are initialized. Before there are "Deadlocks" detected, which must be false positives since none of the threads has started at that moment. I attached the log file to provide more information. Can you tell, what the problem is? If you need more information, I will gladly provide it!

Regards,

Andreas
0 Kudos
9 Replies
SergeyKostrov
Valued Contributor II
1,103 Views
...when some QT Objects are initialized. Before there are "Deadlocks" detected, which must be false positives since none of the threads has started at that moment...

[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:



Threading error analysis: started
Result file:
Loaded module: E:\QtSDK\projects\nanoLES\debug\nanoLES.exe.
Loaded module: C:\Windows\system32\apphelp.dll.
Loaded module: C:\Windows\syswow64\kernel32.dll.
Loaded module: C:\Windows\syswow64\KERNELBASE.dll.
Loaded module: C:\Windows\SysWOW64\ntdll.dll.
Loaded module: C:\Windows\SysWOW64\SYSFER.DLL.
Loaded module: C:\Windows\syswow64\ADVAPI32.DLL.
Loaded module: C:\Windows\syswow64\msvcrt.dll.
Loaded module: C:\Windows\SysWOW64\sechost.dll.
Loaded module: C:\Windows\syswow64\RPCRT4.dll.
Loaded module: C:\Windows\syswow64\SspiCli.dll.
Loaded module: C:\Windows\syswow64\CRYPTBASE.dll.
Loaded module: C:\Windows\system32\IPHLPAPI.DLL.
Loaded module: C:\Windows\syswow64\NSI.dll.
Loaded module: C:\Windows\system32\WINNSI.DLL.
Loaded module: e:\QtSDK\Desktop\Qt\4.7.3\mingw\bin\mingwm10.dll.
Loaded module: C:\Windows\system32\MSWSOCK.DLL.
Loaded module: C:\Windows\syswow64\user32.dll.
Loaded module: C:\Windows\syswow64\GDI32.dll.
Loaded module: C:\Windows\syswow64\LPK.dll.
Loaded module: C:\Windows\syswow64\USP10.dll.
Loaded module: C:\Windows\syswow64\WS2_32.dll.
Loaded module: e:\QtSDK\Desktop\Qt\4.7.3\mingw\bin\libgcc_s_dw2-1.dll.
Loaded module: e:\QtSDK\Desktop\Qt\4.7.3\mingw\bin\QtCored4.dll.
Loaded module: C:\Windows\syswow64\OLE32.dll.
Loaded module: e:\QtSDK\Desktop\Qt\4.7.3\mingw\bin\QtNetworkd4.dll.
Loaded module: e:\QtSDK\Desktop\Qt\4.7.3\mingw\bin\cryptopp.dll.
Loaded module: C:\Windows\system32\IMM32.DLL.
Loaded module: C:\Windows\syswow64\MSCTF.dll.
Loaded module: C:\Windows\SysWOW64\nvinit.dll.

[SergeyK] What is 'nvinit.dll'? Is it a 32-bit DLLfrom NVIDIA?

warning">Deadlock was detected. Application may hang.

[SergeyK] This is a warning, not anerror.The applicationwillcrash laterbecause of an Access Violation.

Loaded module: C:\Windows\system32\winmm.dll.
Loaded module: C:\Windows\System32\wshtcpip.dll.
Internal error. Please contact Intel customer support team.
Internal error. Please contact Intel customer support team.
Application exit code: [-1073741819]

[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.

Result file:
Threading error analysis: completed


[SergeyK] Are you trying toload any 64-bit DLLs from your 32-bit application?

0 Kudos
Andreas_Lagemann
Beginner
1,103 Views
[SergeyK] What is 'nvinit.dll'? Is it a 32-bit DLLfrom NVIDIA?

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.

0 Kudos
SergeyKostrov
Valued Contributor II
1,103 Views
>>[SergeyK] What is 'nvinit.dll'? Is it a 32-bit DLLfrom NVIDIA?
>>
>>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?
0 Kudos
SergeyKostrov
Valued Contributor II
1,103 Views
[SergeyK] What is 'nvinit.dll'? Is it a 32-bit DLLfrom NVIDIA?

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.

0 Kudos
Andreas_Lagemann
Beginner
1,103 Views
Thanks, for your replies.

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
0 Kudos
SergeyKostrov
Valued Contributor II
1,103 Views
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.

[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

0 Kudos
SergeyKostrov
Valued Contributor II
1,103 Views
...
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 \Samples\WinBase\Debug
...


Best regards,
Sergey

0 Kudos
Andreas_Lagemann
Beginner
1,103 Views
Hi Sergey and others,

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
0 Kudos
Mark_D_Intel
Employee
1,103 Views
Unfortunately, Inspector does not support executables compiled with MinGW on Windows.

Mark
0 Kudos
Reply