[英]Illegal Instruction in exe_common.inl
This is about a week I am trying to solve my problem and I really need help.这是我试图解决问题的大约一个星期,我真的需要帮助。 I hope someone will find what is wrong with my setup.我希望有人会发现我的设置有什么问题。
(I am french so I apologize for any English mistakes) (我是法国人,所以对于任何英语错误我深表歉意)
CONTEXT语境
I have a Visual Studio Project which has been developed from OpenFace, a free open-source library, downloaded at that address: https://github.com/TadasBaltrusaitis/OpenFace .我有一个从 OpenFace 开发的 Visual Studio 项目,OpenFace 是一个免费的开源库,可在该地址下载: https ://github.com/TadasBaltrusaitis/OpenFace。 "Developed from" because the project just uses the code of OpenFace. “开发自”是因为该项目只是使用 OpenFace 的代码。 I precise that the project was not made by me, I checked out from a private repository.我明确指出该项目不是我制作的,我是从私人存储库中检出的。
PROBLEM问题
My project build an executable but not run, stopped by an illegal instruction at the file exe_common.inl (don't know what this file is) at the line 223, before getting into in the entry point of my programm (cout << " " << endl at the very beggining of the main() function is not executed).我的项目构建了一个可执行文件但没有运行,在进入我的程序的入口点之前被文件 exe_common.inl(不知道这个文件是什么)的非法指令停止在第 223 行(cout <<“ " << endl 在 main() 函数的最开始没有被执行)。
Here is the guilty line:这是有罪的行:
__scrt_current_native_startup_state = __scrt_native_startup_state::initialized;
Here the stack trace at that breakpoint:这是该断点处的堆栈跟踪:
CamFeaturesExtractor_Affich.exe!dlib::get_global_clock(void)
CamFeaturesExtractor_Affich.exe!00007ff63493114e()
ucrtbase.dll!_initterm()
CamFeaturesExtractor_Affich.exe!__scrt_common_main_seh() line 223
kernel32.dll!BaseThreadInitThunk()
ntdll.dll!RtlUserThreadStart()
Here the exact message exception:这里是确切的消息异常:
Unhandled exception at 0x00007FF63499C5B7 in CamFeaturesExtractor_Affich.exe: 0xC000001D: Illegal Instruction.
WHAT I TRIED我试过什么
That problem doesn't appear on some more recent computer (check below for my spec) so my first guess is to say that is a hardware problem.这个问题没有出现在一些更新的计算机上(检查下面的我的规格)所以我的第一个猜测是说这是一个硬件问题。 The exception is not triggered on Intel Cord Duo I5 (with same model of computer than mine). Intel Cord Duo I5(与我的计算机型号相同)不会触发异常。 Here is my specs:这是我的规格:
Edition : Windows 10 Professionel
Version : 1511
OS Version : 10586.679
Processor : Intel(R) Celeron(R) CPU 2950M @ 2.00 GHz 2.00 GHz
RAM : 4G
System type : OS 64 bits, processeur x64
If the problem comes from my poor processor doesn't have the instruction, is there a workaround or I need to change my computer?如果问题出在我糟糕的处理器没有指令,是否有解决方法或者我需要更换我的电脑? Let me know if you need some informations I forgot to provide and thanks in advance if you try to help me...如果您需要一些我忘记提供的信息,请告诉我,如果您尝试帮助我,请提前致谢...
EDIT编辑
The part of disassembly where the code stop as requested:代码按要求停止的反汇编部分:
00007FF6D635B5BD mov eax,0FFh
00007FF6D635B5C2 jmp __scrt_common_main_seh+167h (07FF6D635B6B3h)
_initterm(__xc_a, __xc_z);
00007FF6D635B5C7 lea rdx,[__xc_z (07FF6D639ED98h)]
00007FF6D635B5CE lea rcx,[__xc_a (07FF6D639EC10h)]
00007FF6D635B5D5 call _initterm (07FF6D635C4B0h)
__scrt_current_native_startup_state = __scrt_native_startup_state::initialized;
00007FF6D635B5DA mov dword ptr [__scrt_current_native_startup_state (07FF6D64162E0h)],2
}
else
00007FF6D635B5E4 jmp __scrt_common_main_seh+0A2h (07FF6D635B5EEh)
{
has_cctor = true;
00007FF6D635B5E6 mov sil,1
00007FF6D635B5E9 mov byte ptr [has_cctor],sil
}
__scrt_release_startup_lock(is_nested);
00007FF6D635B5EE mov cl,bl
00007FF6D635B5F0 call __scrt_release_startup_lock (07FF6D635B368h)
Note that exe_common.inl, as said in comment, is a Read-Only Visual Studio file located in C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\crt\src\vcruntime\exe_common.inl.请注意,如评论中所述,exe_common.inl 是位于 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\crt\src\vcruntime\exe_common.inl 中的只读 Visual Studio 文件。 I made a gist if you want to see it: https://gist.github.com/AlEmerich/281994ebbcde7d3bac88f21a85de96e2如果你想看的话,我做了一个要点: https ://gist.github.com/AlEmerich/281994ebbcde7d3bac88f21a85de96e2
LAST EDIT: I don't know if it is the right way to do but I let know the audience that I give up on that problem by trying to change my computer.最后编辑:我不知道这是否是正确的做法,但我通过尝试更换计算机让听众知道我放弃了这个问题。 I have now a more recent hardware and it throws any errors.我现在有一个更新的硬件,它会抛出任何错误。 Thanks anyway for your help !无论如何感谢您的帮助!
For me, remove _CRT_SECURE_NO_WARNINGS
from Release Mode and try to build in Release Mode.对我来说,从发布模式中删除_CRT_SECURE_NO_WARNINGS
并尝试在发布模式下构建。 It should contain some errors, fix them and than it should be fine.它应该包含一些错误,修复它们并且应该没问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.