Hello,
I've just installed Rust 1.2 stable on WIndows 7 64bit. After adding default installation path to PATH variable rustc started successfully. Cargo crashes when I am starting it like:
cargo hello_world --bin
If I compile my hello world application executable file is generated, but when I tried to start it its also crashes.
Any ideas why this is happening and how to solve it?
Version=1
EventType=APPCRASH
EventTime=130838276290482566
ReportType=2
Consent=1
UploadTime=130838276291552673
ReportIdentifier=52ef5ea6-40ab-11e5-ba0b-e8113233fe62
IntegratorReportIdentifier=52ef5ea5-40ab-11e5-ba0b-e8113233fe62
Response.type=4
Sig[0].Name=Application Name
Sig[0].Value=cargo.exe
Sig[1].Name=Application Version
Sig[1].Value=0.0.0.0
Sig[2].Name=Application Timestamp
Sig[2].Value=00000000
Sig[3].Name=Fault Module Name
Sig[3].Value=ntdll.dll
Sig[4].Name=Fault Module Version
Sig[4].Value=6.1.7601.18869
Sig[5].Name=Fault Module Timestamp
Sig[5].Value=556366f2
Sig[6].Name=Exception Code
Sig[6].Value=c0000005
Sig[7].Name=Exception Offset
Sig[7].Value=000000000004ada4
DynamicSig[1].Name=OS Version
DynamicSig[1].Value=6.1.7601.2.1.0.256.4
DynamicSig[2].Name=Locale ID
DynamicSig[2].Value=1033
UI[2]=C:\Program Files\Rust stable 1.2\bin\cargo.exe
UI[3]=cargo.exe 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\Rust stable 1.2\bin\cargo.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:\Windows\system32\ADVAPI32.dll
LoadedModule[5]=C:\Windows\system32\msvcrt.dll
LoadedModule[6]=C:\Windows\SYSTEM32\sechost.dll
LoadedModule[7]=C:\Windows\system32\RPCRT4.dll
LoadedModule[8]=C:\Windows\system32\bcrypt.dll
LoadedModule[9]=C:\Windows\system32\CRYPT32.dll
LoadedModule[10]=C:\Windows\system32\MSASN1.dll
LoadedModule[11]=C:\Windows\system32\ole32.dll
LoadedModule[12]=C:\Windows\system32\GDI32.dll
LoadedModule[13]=C:\Windows\system32\USER32.dll
LoadedModule[14]=C:\Windows\system32\LPK.dll
LoadedModule[15]=C:\Windows\system32\USP10.dll
LoadedModule[16]=C:\Windows\system32\SHELL32.dll
LoadedModule[17]=C:\Windows\system32\SHLWAPI.dll
LoadedModule[18]=C:\Windows\system32\USERENV.dll
LoadedModule[19]=C:\Windows\system32\profapi.dll
LoadedModule[20]=C:\Windows\system32\WINHTTP.dll
LoadedModule[21]=C:\Windows\system32\webio.dll
LoadedModule[22]=C:\Windows\system32\WS2_32.dll
LoadedModule[23]=C:\Windows\system32\NSI.dll
LoadedModule[24]=C:\Windows\system32\IMM32.DLL
LoadedModule[25]=C:\Windows\system32\MSCTF.dll
LoadedModule[26]=C:\Windows\pcdrm\NSCCOR0364.DLL
LoadedModule[27]=C:\Windows\system32\MSVCR100.dll
LoadedModule[28]=C:\Windows\system32\VERSION.dll
LoadedModule[29]=C:\Windows\system32\psapi.dll
LoadedModule[30]=C:\Windows\pcdrm\NBID64.dll
LoadedModule[31]=C:\Windows\system32\OLEAUT32.dll
LoadedModule[32]=C:\Windows\pcdrm\NFD0164.dll
LoadedModule[33]=C:\Windows\INCOPS3\ESSPD64.dll
LoadedModule[34]=C:\Windows\INCOPS3\ICATCDLL64.dll
LoadedModule[35]=C:\Windows\INCOPS3\icdcnl64.dll
LoadedModule[36]=C:\PaperSecu\paperhk64.dll
LoadedModule[37]=C:\Windows\system32\f_im.dll
LoadedModule[38]=C:\Program Files\Fasoo DRM\f_nxa.dll
LoadedModule[39]=C:\Program Files\Fasoo DRM\f_sps.dll
LoadedModule[40]=C:\Windows\WinSxS\amd64_microsoft.vc90.atl_1fc8b3b9a1e18e3b_9.0.30729.1_none_9aefdaaa829eb818\ATL90.DLL
LoadedModule[41]=C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.18837_none_a4d981ff711297b6\COMCTL32.dll
LoadedModule[42]=C:\Windows\system32\winspool.drv
LoadedModule[43]=C:\Windows\system32\f_pbrc09.dll
LoadedModule[44]=C:\Windows\system32\dwmapi.dll
FriendlyEventName=Stopped working
ConsentKey=APPCRASH
AppName=cargo.exe
AppPath=C:\Program Files\Rust stable 1.2\bin\cargo.exe
Sometimes 3rd party programs like Anti Virus/Malware/DRM causing applications to crash mysteriously. I usually turn off such programs when doing programming in my PC.
I already disabled V3 anti virus I have, but I can't disable fasoo, since its my working PC. All other development tools works fine (Android studio, Visual Studio).
Is it possible to trace it more deeply and fix this incompatibility?
I can provide all necessary reports and tests, but i don't think i can fix it myself...
You might also try the Cargo nightly to see if this has already been fixed. It can be downloaded from https://static.rust-lang.org/cargo-dist/cargo-nightly-x86_64-pc-windows-gnu.tar.gz. You'll probably want to test it right from the unpacked directory and not try to install it over your existing Rust (these tarballs are not usually used to install on windows and are incompatible with the msi installers).
After installing it i was finally able to run cargo. Thank you!
My second issue is "hello_world" application crashing same way during run (compiled without any issues by gnu builded Rust). I've tried both 32 and 64, stable and nightly (gnu only) releases, same behaviour.
As I understand issue is messing between 64 and 32 version of system libraries. Here is was I've got from gdb after compiling my "hello world" with "rustc -g hello_world.rs"
$ gdb ./hello_world.exe
GNU gdb (GDB) 7.9.1
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-w64-mingw32".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./hello_world.exe...done.
(gdb) run
Starting program: D:\Shared\Projects\Rust\hello_world.exe
[New Thread 2840.0x1c94]
[New Thread 2840.0xf50]
[New Thread 2840.0x2c10]
warning: `C:\Windows\system32\f_pbrc09.dll': Shared library architecture i386 is not compatible with target architecture i386:x86-64.
Program received signal SIGSEGV, Segmentation fault.
0x0000000077a2ada4 in ntdll!RtlDeNormalizeProcessParams ()
from C:\Windows\SYSTEM32\ntdll.dll
Not sure is it correct to use "C:\Windows\SYSTEM32\ntdll.dll" for 64 application? Also 'C:\Windows\system32\f_pbrc09.dll' looks incorrect.
After installing Visual Studio 2015 comunity it finaly worked!
Yep, msvc is oddly, despite being a relatively new addition, actually more reliable than gnu, because it uses Microsoft's linker and libraries and also because it doesn't use jemalloc. Certain configurations can cause jemalloc or mingw's runtime bits to crash your process on startup, which msvc avoids.
It is entirely correct for a 64-bit application to use DLLs from System32. 32-bit applications should be loading their DLLs from SysWOW64. Although it is really weird that there is a 32-bit f_pbrc09.dll in your system32 and that your application is loading it.