Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7953 Discussions

Compilation failed with application crash

lee_icc
Beginner
2,781 Views
Hi,

I used C++ Composer XE 2011 update 6 with VS2010 on Windows 7 x64 platform. The compilation failed with the crash information "mcpcom.exe has stopped working" with the following details:
-----------------------------------------------------------------------------
Problem signature:
Problem Event Name: APPCRASH
Application Name: mcpcom.exe
Application Version: 0.0.0.0
Application Timestamp: 4e44b9af
Fault Module Name: StackHash_dd15
Fault Module Version: 0.0.0.0
Fault Module Timestamp: 00000000
Exception Code: c0000005
Exception Offset: 000000006fff03e8
OS Version: 6.1.7600.2.0.0.256.1
Locale ID: 1033
Additional Information 1: dd15
Additional Information 2: dd152986fe395b5a883659aefed8eb71
Additional Information 3: af43
Additional Information 4: af43a00ee10606b603d5ffb3aac00165

Read our privacy statement online:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409

If the online privacy statement is not available, please read our privacy statement offline:
C:\\Windows\\system32\\en-US\\erofflps.txt
------------------------------------------------------------------------------

The build log is as follows:
------------------------------------------------------------------------------
1>------ Build started: Project: test, Configuration: Release x64 ------
1> main.c
1>
1> compilation aborted for ..\\src\\main.c (code -1073741819)
1>C:\\Program Files (x86)\\MSBuild\\Microsoft.Cpp\\v4.0\\Platforms\\x64\\PlatformToolsets\\Intel C++ Compiler XE 12.1\\Microsoft.Cpp.x64.Intel C++ Compiler XE 12.1.targets(211,5): error MSB6006: "icl.exe" exited with code -1073741819.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
-------------------------------------------------------------------------------

However, the compilation on Windows XP 32bit platform was successful.

Anyone have ideas on solving this problem?

Thanks,
Lee
0 Kudos
58 Replies
lee_icc
Beginner
661 Views
Igor,

I compiled the icl.c with VS2008 and replaced the real icl.exe with the generated icl.exe under folder 'E:\ProgramW7\Intel\Composer XE 2011 SP1\bin\intel64'. The resulting files were attached as follows.

0 Kudos
levicki
Valued Contributor I
661 Views

Lee,

MSBuild is passing a response file to compiler instead of command line.

I have changed the code. Please recompile and run again. This time you will get ICL_RSP.TXT instead of ICL_ARG.TXT.

0 Kudos
lee_icc
Beginner
661 Views
Igor,

The new resulting files were attached as follows.
0 Kudos
levicki
Valued Contributor I
661 Views

Lee,

From the ICL_RSP.TXT you can see that for some reason, the compiler does not get the correct path to the linker:

/Qlocation,link,"$(VCInstallDir)\bin\x86_amd64"

If I understand correctly, $(VCInstallDir) should be substituted with real path. This is not immediately noticeable since compiler is being invoked with /c (compile only). However, if you remove /c it then complains:

icl: error #10037: could not find '$(VCInstallDir)\bin\x86_amd64'

I am not sure how to resolve that and whether it will help -- perhaps you can manually substitute it with fully qualified path in Visual Studio settings.

Also, my version of compiler complains about /Qftz-:

icl: command line remark #10148: option '/Qftz-' not supported

Moreover, I noticed that you have /Qipo enabled. It is known to cause problems in some cases and for smaller projects it may not give any performance benefits so it might be a good thing to try disabling it just to be sure.

Furthermore, I have noticed some environment variables which are unknown to me (Google shows nothing even remotely similar):

TRACKER_ATTACHED=1
TRACKER_ENABLED=1
TRACKER_INTERMEDIATE=C:\Users\lee\Documents\Visual Studio 2010\Projects\test2\x64\Release
TRACKER_OUTOFPROC=1
TRACKER_RESPONSEFILE=C:\Users\lee\AppData\Local\Temp\099c6f226e154817989c5c8c1489c1a0.tmp
TRACKER_ROOTFILES=
TRACKER_TOOL=icl
TRACKER_TOOLCHAIN=icl

I see that it is mentioning icl so it might be worth looking into it -- perhaps you have insstalled an addon for VS2010 (or you have enabled some feature in VS2010?) which is causing Intel Compiler to crash?

Finally, I would like you to try compiling from the 64-bit Intel Compiler command prompt again -- since you have repaired your VS2010 installation it should work now. Please open 64-bit ICL command prompt, CD to your test2 solution folder and use the following command line:

icl /c /Qvc10 /Qlocation,link,"$(VCInstallDir)\bin\x86_amd64" /Zi /nologo /W3 /O2 /Oi /Qipo /Qftz- /D WIN32 /D NDEBUG /D _CONSOLE /D _UNICODE /D UNICODE /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo"x64\Release\" /Fd"x64\Release\vc100.pdb" /TC src\main.c

If that doesn't crash, try removing option /c to see if it crashes because of unexpanded $(VCInstallDir).

If you still have the same error when you open command prompt ("ERROR: Cannot determine the location of the VS Common Tools folder"), then your VS2010 installation is broken. Please check for the presence of one of the following registry keys:

HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7
HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7
HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7
HKCU\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7

Because that is where the vsvars32.bat and other VS2010 batch files look for the path. On my system, I found it in the underlined key.

0 Kudos
lee_icc
Beginner
661 Views
Igor,

As you recommended, I tried several cases from the command prompt. When I openned the Intel Compiler command prompt for Intel 64 Visual Studio 2010 mode, there is no error any more:
--------------------------------------------------------------------------------
Intel Inspector XE 2011 (build 189290)
Intel VTune Amplifier XE 2011 (build 186533)
Intel Parallel Studio XE 2011 SP1
Copyright (C) 1985-2011 Intel Corporation. All rights reserved.
Intel Composer XE 2011 Update 7 (package 258)
Setting environment for using Microsoft Visual Studio 2010 x64 tools.

E:\ProgramW7\Intel\Composer XE 2011 SP1>
--------------------------------------------------------------------------------

I also checked the registry keys as you listed to be sure, and found that the 2nd entry as you underlined is OK while the other three entries don't exist. This is the same as you.
-------------------------------------------
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7]
"9.0"="E:\\ProgramW7\\Microsoft Visual Studio 9.0\"
"10.0"="E:\\ProgramW7\\Microsoft Visual Studio 10.0\"
-------------------------------------------

So, the VS2010 installation should be OK.

From the command prompt, I compiled the test2 with the command line shown by you, and the main.obj file was generated in "x64\Release" without any crash.
---------------------------------------------------------------------------------------------------------
C:\Users\lee\Documents\Visual Studio 2010\Projects\test2>icl /c /Qvc10 /Qlocatio
n,link,"$(VCInstallDir)\bin\x86_amd64" /Zi /nologo /W3 /O2 /Oi /Qipo /Qftz- /D W
IN32 /D NDEBUG /D _CONSOLE /D _UNICODE /D UNICODE /EHsc /MD /GS /Gy /fp:precise
/Zc:wchar_t /Zc:forScope /Fo"x64\Release\" /Fd"x64\Release\vc100.pdb" /TC src\m
ain.c
main.c
---------------------------------------------------------------------------------------------------------

By removing the /c option, it gave the ipo remarks and complained the location of '$(VCInstallDir)\bin\x86_amd64', and the main.obj was also generated without any crash.
---------------------------------------------------------------------------------------------------------
C:\Users\lee\Documents\Visual Studio 2010\Projects\test2>icl /Qvc10 /Qlocation,l
ink,"$(VCInstallDir)\bin\x86_amd64" /Zi /nologo /W3 /O2 /Oi /Qipo /Qftz- /D WIN3
2 /D NDEBUG /D _CONSOLE /D _UNICODE /D UNICODE /EHsc /MD /GS /Gy /fp:precise /Zc
:wchar_t /Zc:forScope /Fo"x64\Release\" /Fd"x64\Release\vc100.pdb" /TC src\main
.c
main.c
ipo: remark #11001: performing single-file optimizations
ipo: remark #11006: generating object file x64\Release\ipo_out.obj
icl: error #10037: could not find '$(VCInstallDir)\bin\x86_amd64'
---------------------------------------------------------------------------------------------------------

Moreover, by removing the /Qipo option, it didn't give the remark about ipo any more, and the vc100.pdb was generated besides the main.obj.
0 Kudos
lee_icc
Beginner
661 Views
I founded the $(VCInstallDir) in the VS2010 settings that $(VCInstallDir)=E:\ProgramW7\Microsoft Visual Studio 10.0\VC.

From the command prompt, I manually substituted the $(VCInstallDir) with the full real path "E:\ProgramW7\Microsoft Visual Studio 10.0\VC" and recompiled the program with the same options as before:

icl /Qvc10 /Qlocation,link,"E:\ProgramW7\Microsoft Visual Studio 10.0\VC\bin\x86_amd64" /Zi /nologo /W3 /O2 /Oi /Qftz- /D WIN32 /D NDEBUG /D _CONSOLE /D _UNICODE /D UNICODE /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo"x64\Release\" /Fd"x64\Release\vc100.pdb" /TC src\main.c

The compiler succeeded in generating the main.exe executable without any error. The compilation and linking were also successful with the /Qipo option enabled, and it just reported the ipo remarks as before.

So, building the program from the command prompt looks like successful.
0 Kudos
levicki
Valued Contributor I
661 Views

Lee,

What I meant is to replace the $(VCInstallDir) in the VS2010 Intel Compiler settings with fully qualified path and try building from the IDE.

That option is located under Tools->Options->Intel C++ Composer XE 2011->Compilers->Default Options.

Can you please try that as well and report back?

Also, you didn't comment on those TRACKER_<...> environment variables?

0 Kudos
lee_icc
Beginner
661 Views
Igor,

I replace the $(VCInstallDir) in the VS2010 Intel Compiler settings with the full path "E:\ProgramW7\Microsoft Visual Studio 10.0\VC". Unfortunately, the building from IDE failed for the same reason (mcpcom.exe crash) as before.

As for the TRACKER_<...> environment variables, I have no idea for what purpose they are set. I didn't install other add-on for VS2010 other than the Intel Compiler Suite, and just found the tracker.exe in the folder "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools" and its x64 folder. Maybe the tracker is a component of VS2010 for tracing bugs or something else.
0 Kudos
levicki
Valued Contributor I
661 Views

Regarding TRACKER, you are right, that is the executable which contains environment variables. It isBuild (MSBuild) File Tracker which is used to track the build process and generate those .tlog files which show read/write access to various files during compile time.

Back to square one then...

1. Is there any reason you did not install Windows 7 SP1?

2. Did you install VS2010 SP1?

0 Kudos
lee_icc
Beginner
661 Views
I installed the updates by the Windows Update in the system, and it didn't provide the Service Pack 1 for Windows 7 and VS2010 automatically. Should I need to download the SP1 and install it manually?
0 Kudos
SergeyKostrov
Valued Contributor II
661 Views
Hi Lee,

Yes, I recommendyou toUpdate your computer with MS Windows Updates without any exceptions.

Some time ago I informed you that there are a couple of Updates related to different versions of .NET andMS Visual Studios.

Updatesare big, but with a high speed internet it is a fast procedure. It will take some time to completely updateyour computer because Microsoft changes a lot of .NET assemblies, VS execs,VS dlls,etc.

Good luck and keep us informed!

Best regards,
Sergey
0 Kudos
lee_icc
Beginner
661 Views
I downloaded the SP1 package for Windows manually, and it asked for 8GB of free disk space to install the update! Unfortunately, there is only 1GB free space out of 25GB partition size of the drive C. I really don't understand why it want to eat so large space just for an update.

Also, I downloaded the SP1 package for VS2010 manually. It asked for 3.8G of free space at drive C and 1.4G of free space at drive E to install! Hungry once more!

So, I have to manage to allocate much more space to the C drive to install the two SP1 package. I wish that the problem be solved by install the update.
0 Kudos
levicki
Valued Contributor I
661 Views

Lee,

Now that you told us that you have a very little free space available on your C: drive, I wonder if that is maybe contributing to your problems.

Namely, 1GB free out of 25GB is only 4% of free space. It is not recommended to have less than 15% of free space on an NTFS partition at any time (especially not on a system partition!).

Having that in mind, and the fact that 25GB is a partition way too small for normal Windows 7 functioning (you need space for system and per user TEMP folders, system restore points, previous versions of files, swap and hybernation), I would recommend that you reinstall your system from scratch using Windows 7 installation ISO with SP1 slipstreamed, and this time leave more free space on the C: partition.

OS reinstall would most likely also resolve your misterious compiler problem which we are failing to reproduce here.

If, by any chance, you have partitioned your disk using some 3rd party partitioning tool or if you have removed 100MB reserved partition when you installed Windows 7, I would also recommend to remove all partitions and allow Windows 7 Setup to create them. There is a reason why that 100MB partition is created other than just having boot files on it (hint: partition start alignment).

If you are unsure how much free space you need, here is a rough guideline:

1. Windows folder (22 GB current size here, includes assemblies, SxS, and Windows Installer software and patch installation cache which on my system is 4.7 GB at the moment)
2. hibernation + swap (approx. 2x amount of RAM you have, in my case 16 GB)
3. VS2010 (approx. 2.5 GB if you use only C++ plus 1.5GB if you need debugging simbols for OS files)
4. Intel Composer (2.5 GB if you also install static IPP libraries)

That totals to 44.5 GB of space just to get started. I also recommend at leasst 10 GB of free space for TEMP at any given time (so you can later install updates which require a lot of space such as service packs, etc).

Formula:
((44.5 GB + space for other apps you need + 10 GB for temporary storage) + 5% of partition size for system restore) + 15% reserve for NTFS = C: partition size

An example calculation (if you need 3.5 GB for other applications such as Office, etc):
44.5 + 3.5 + 10 = 58

58 * 1.05 = 60.9

60.9 * 1.15 = ~70 GB

Don't forget to add space for Documents\Pictures\Video if you are using those locations, and keep in mind that web browsers and email clients can also take up a lot of space for caches.

Also, in my opinion, there is no advantage to installing programs to separate partition because C: partition is closer to the start of the drive and thus gives much faster loading times.

I can only recommend installing programs that can run in portable mode to a folder different from Program Files so you can easily get them running again if and when you need to reinstall. However, starting with Windows Vista, you must make sure that folder you install software into (in your case E:\ProgramsW7) has the same access permissions as Program Files to avoid potential installation and usage issues.

If you decide to follow my recommendations, make sure that after reinstalling Windows 7 you follow these steps:

1. Install latest chipset, video, audio, networking, and other drivers.
2. Install all available updates published after SP1 from Windows Update except language packs and other optional stuff you might not need
3. Install VS 2010
4. Install VS 2010 SP1
5. Install Intel Compiler
6. If it now works as it should, then create a restore point and continue installing other software.

Finally, I am afraid that we have reached the point where I will not be able to help you any further with your problem should you decide to keep your customized OS and software install.

Good luck!

0 Kudos
SergeyKostrov
Valued Contributor II
661 Views
All updates are compressed and Windows Updateneeds alot of space on a drive to uncompress it Completely.

Then, an update for a system is considered as a transaction and a rule is as follows:

it is Committed when everything is done or Rollbacked when some unrecoverableerror occurs.

Best regards,
Sergey
0 Kudos
SergeyKostrov
Valued Contributor II
661 Views
Hi Lee,

This is a statement from Igor:

...

Now that you told us that you have a very little free space available on your C: drive, I wonder if that is maybe contributing to your problems...
...

I absolutely agree with it. Good Luck!

0 Kudos
JenniferJ
Moderator
661 Views
do you still get the same error with the build environment?

if so, openthis file "compilervars_arch.bat"and remove the "$echo off" at the top, and open the build environment window again. The window should contain all the output, and please paste the output to a text file and attach to the post.

Jennifer
0 Kudos
levicki
Valued Contributor I
661 Views

Jennifer,

No he does not. He can now build from ICL command prompt but not from Visual Studio.

Please read the whole thread again to see where we are at now. I also asked you a question.

I am now asking a second one -- why is icl.exe getting unexpanded $(VCInstallDir) in Qoptions,link from MSBuild?

0 Kudos
Reply