简体   繁体   中英

Visual Studio 2013 crashes for non-static data member initialization

i wanna compile Trinitycore with visual studio 2013(x86 & x64 both tested) on windows 10

i get this error and i test every solutions such as:

1.change /Zm on Additional Options from /Zm500 to /Zm2000(Maximum)

2.disable precompiled headers

3.disable Optimization

4.re-install Visual Studio

5.re-install windows 10

visual studio error description:

Error   1   error C1001: An internal error has occurred in the compiler.    \TrinityCore-3.3.5\src\server\game\Server\WorldSocket.cpp   256 1   game

Error   2   error C1060: compiler is out of heap space  c\src\server\game\c1xx  game

Error   3   error D8040: error creating or communicating with child process c\src\server\game\cl    game

event log:

Faulting application name: CL.exe, version: 18.0.21005.1, time stamp: 0x524faabf
Faulting module name: c1xx.dll, version: 18.0.21005.1, time stamp: 0x524faa90
Exception code: 0xc0000005
Fault offset: 0x0025236e
Faulting process id: 0x1948
Faulting application start time: 0x01d19f24d391755f
Faulting application path: C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe
Faulting module path: C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\c1xx.dll
Report Id: d98e09ae-0b18-11e6-b361-1008b14a12cc
Faulting package full name: 
Faulting package-relative application ID: 

vs output errors:

TrinityCore-3.3.5\src\server\game\Server\WorldSocket.cpp(256): fatal error C1001: An internal error has occurred in the compiler.
1>  (compiler file 'f:\dd\vctools\compiler\cxxfe\sl\p1\c\convert.cpp', line 9608)
1>   To work around this problem, try simplifying or changing the program near the locations listed above.
1>  Please choose the Technical Support command on the Visual C++ 
1>   Help menu, or open the Technical Support help file for more information
1>  Opcodes.cpp
1>c1xx : fatal error C1060: compiler is out of heap space
1>          An internal error has occurred in the compiler.
1>  (compiler file 'msc1.cpp', line 1325)
1>   To work around this problem, try simplifying or changing the program near the locations listed above.
1>  Please choose the Technical Support command on the Visual C++ 
1>   Help menu, or open the Technical Support help file for more information
1>cl : Command line error D8040: error creating or communicating with child process
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

event log attached file:

Version=1
EventType=APPCRASH
EventTime=131060826745545591
ReportType=2
Consent=1
UploadTime=131060826747020586
ReportIdentifier=e3cb3d99-0b13-11e6-b361-1008b14a12cc
IntegratorReportIdentifier=e3cb3d98-0b13-11e6-b361-1008b14a12cc
WOW64=1
Response.BucketId=d11da6a9b6e3e8a8c8d50161959694bb
Response.BucketTable=1
Response.LegacyBucketId=-389226431
Response.type=4
Sig[0].Name=Application Name
Sig[0].Value=CL.exe
Sig[1].Name=Application Version
Sig[1].Value=18.0.21005.1
Sig[2].Name=Application Timestamp
Sig[2].Value=524faabf
Sig[3].Name=Fault Module Name
Sig[3].Value=c1xx.dll
Sig[4].Name=Fault Module Version
Sig[4].Value=18.0.21005.1
Sig[5].Name=Fault Module Timestamp
Sig[5].Value=524faa90
Sig[6].Name=Exception Code
Sig[6].Value=c0000005
Sig[7].Name=Exception Offset
Sig[7].Value=0025236e
DynamicSig[1].Name=OS Version
DynamicSig[1].Value=10.0.10586.2.0.0.256.48
DynamicSig[2].Name=Locale ID
DynamicSig[2].Value=1033
UI[2]=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe
UI[3]=Microsoft (R) C//C++ Optimizing Compiler has stopped working
UI[4]=Windows can check online for a solution to the problem.
UI[5]=Check online for a solution and close the program
UI[6]=Check online for a solution later and close the program
UI[7]=Close the program
LoadedModule[0]=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe
LoadedModule[1]=C:\Windows\SYSTEM32\ntdll.dll
LoadedModule[2]=C:\Windows\SYSTEM32\KERNEL32.DLL
LoadedModule[3]=C:\Windows\SYSTEM32\KERNELBASE.dll
LoadedModule[4]=C:\Program Files (x86)\MSBuild\12.0\bin\FileTracker.dll
LoadedModule[5]=C:\Windows\SYSTEM32\ADVAPI32.dll
LoadedModule[6]=C:\Windows\SYSTEM32\msvcrt.dll
LoadedModule[7]=C:\Windows\SYSTEM32\sechost.dll
LoadedModule[8]=C:\Windows\SYSTEM32\RPCRT4.dll
LoadedModule[9]=C:\Windows\SYSTEM32\SspiCli.dll
LoadedModule[10]=C:\Windows\SYSTEM32\CRYPTBASE.dll
LoadedModule[11]=C:\Windows\SYSTEM32\bcryptPrimitives.dll
LoadedModule[12]=C:\Windows\SYSTEM32\ole32.dll
LoadedModule[13]=C:\Windows\SYSTEM32\combase.dll
LoadedModule[14]=C:\Windows\SYSTEM32\GDI32.dll
LoadedModule[15]=C:\Windows\SYSTEM32\USER32.dll
LoadedModule[16]=C:\Windows\SYSTEM32\MSVCR120.dll
LoadedModule[17]=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\mspdb120.dll
LoadedModule[18]=C:\Windows\SYSTEM32\VERSION.dll
LoadedModule[19]=C:\Windows\SYSTEM32\IMM32.DLL
LoadedModule[20]=C:\Windows\SYSTEM32\CRYPTSP.dll
LoadedModule[21]=C:\Windows\system32\rsaenh.dll
LoadedModule[22]=C:\Windows\SYSTEM32\bcrypt.dll
LoadedModule[23]=C:\Windows\SYSTEM32\MSVCP120.dll
LoadedModule[24]=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\mspdbcore.dll
LoadedModule[25]=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\c2.dll
LoadedModule[26]=C:\Windows\SYSTEM32\SHLWAPI.dll
LoadedModule[27]=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\c1xx.dll
LoadedModule[28]=C:\Windows\system32\apphelp.dll
State[0].Key=Transport.DoneStage1
State[0].Value=1
FriendlyEventName=Stopped working
ConsentKey=APPCRASH
AppName=Microsoft (R) C//C++ Optimizing Compiler
AppPath=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\cl.exe
ApplicationIdentity=00000000000000000000000000000000

i really confused because i am compile this project many times with this steps and with this visual studio.

Edit 1: i create new Win32Project and i put this code on that:

#include "stdafx.h"

# define LENGTH 20

typedef unsigned char      uint8_t;
typedef uint8_t uint8;

struct test
{
    uint8 intT[LENGTH] = {};
};

and when i compile that i got this error again:

Error   1   error C1001: An internal error has occurred in the compiler.    \Projects\Win32Project1\Win32Project1\Win32Project1.cpp 13  1   Win32Project1

An "internal compiler error" (or ICE) is, by definition, a compiler bug. There could well be code in your program that's triggering that bug. Your crash seems to be triggered by the use of a non-static data member initialisation (NSDMI), and Microsoft admits that their support for NSDMIs in Visual Studio 2013 was unreliable at best :

Unfortunately, the code in our compiler (some of it written 30 years ago) for handling initialization suffers from many longstanding architectural limitations. This code was sufficient for C++03-style initialization, but NSDMI, a C++11 feature, caused it to exhibit these limitations as severe bugs.

Given this, you may also wish to try simply upgrading your toolchain. However, it could also be that your installation is completely broken/corrupted.

Either way, your first task is to reinstall Visual Studio and see whether the problem persists. Perhaps try compiling the project on a different computer.

If that doesn't fix it, you need to produce a minimal testcase and submit it to the developers for review (at MS Connect). Please be sure to come back here and link us to the posted issue so that I can update the answer with any pertinent information from the developers (eg version the bug is fixed in).

This is a ICE ( an internal compiler error ). It is cause by the code around line 256 of the WorldSocket.cpp file.

In that file; the class AuthSession , here uses non-static default member initialisation (NSDMI) with an array (on line 256) that is shown in the error message.

IIRC, VS2013 does not fully support the NSDMI feature. It was added to C++11 but VS2013 had limitations in its implementation of NSDMI .

The uint8 Digest[SHA_DIGEST_LENGTH] = {}; could just be too much for it to compile.

OK Finally Problem Solved, Only Need Update Visual Studio 2013 to Visual Studio 2013 Update 5 .

On Update 5 For Visual Studio 2013 this bug is fixed completely.

Thank you "Lightness Races in Orbit" And "Niall" for answer and helps :)

i am so happy

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM