如何找出应用程序崩溃的原因 - Win 10 LTSB
How to find out why application crashes - Win 10 LTSB
我有使用 VS 2017 15.7.4 构建的应用程序,它是 64 位命令行C++应用程序。
我已经将其与所有依赖项DLL一起复制到装有Windows 10 Enterprise 2016 LTSB 64位的机器上(版本为版本10.0.14393(。应用程序有效。
然后我把它复制到另一台具有相同版本窗口的机器上。在那里,它立即停止,消息停止工作。
编辑:找到原因,详细信息在评论中
我试图解决问题:
- Visual Studio 2017 可再发行组件不会改变这种情况。 事件
- 日志有一些崩溃事件,事件 1001:除了已加载所有依赖项模块 DLL 之外,没有任何有用的信息。
- 事件 1000:没有任何用处
- 事件 1005 有消息:
由于以下原因之一,Windows 无法访问该文件: 网络连接有问题,磁盘该文件 存储在此计算机上或安装在此计算机上的存储驱动程序;或 磁盘丢失。Windows 关闭了程序my_program.exe因为 的此错误。
程序: my_program.exe文件:
错误值列在"其他数据"部分中。用户操作
- 再次打开该文件。这种情况可能是一个临时问题,当程序再次运行时会自行纠正。
- 如果仍然无法访问该文件,并且
- 它在网络上,您的网络管理员应验证网络没有问题,并且服务器可以 联系。
- 它位于可移动磁盘(例如软盘或 CD-ROM(上,请验证该磁盘是否已完全插入计算机。
- 通过运行 CHKDSK 检查并修复文件系统。若要运行 CHKDSK,请单击"开始",单击"运行",键入 CMD,然后单击"确定"。在命令下 提示符,键入 CHKDSK/F,然后按 Enter。
- 如果问题仍然存在,请从备份副本还原文件。
- 确定是否可以打开同一磁盘上的其他文件。否则,磁盘可能已损坏。如果是硬盘,请联系您的 管理员或计算机硬件供应商以获得进一步的帮助。
其他数据错误值: 00000000 磁盘类型: 0
- 我尝试在不同的机器上编译它,使用 VS 2017 15.8.4(不同于 15.7.4(,然后二进制文件在目标机器上工作。虽然,这不是解决方案,因为这台机器不用于"夜间构建"。
- 依赖不显示任何缺少的依赖项
正如评论者指出我找到答案的正确方法: 事后调试 - 附加 WinDbg - 向我显示错误是"非法指令",该指令也是"vmovdqu",这是 AVX 指令。实用程序CoreInfo显示该机器CPU不支持AVX指令。解决方案是在没有此支持的情况下进行编译。
相关文章:
- 如何找出应用程序崩溃的原因 - Win 10 LTSB
- win 表单应用程序字符串^ 到 int
- Windows 后台服务(系统配置文件)无法使用 C++ 访问 win 10 上的用户 appData 文件夹?
- sf::Windows上的音乐:api-ms-win-crt-locale-l1-1-0.dll:无法打开共享对象文件
- Win API对齐按钮上的文本
- 为什么 std::swap 不适用于<bool> Clang/Win(英语:Clang/Win)下的矢量元素?
- 命名空间 Win 没有成员"simpleControl"是什么意思
- 传递 boost::filesystem::p ath 到 boost::p rocess::child 会导致 Win
- 从 win 7 升级到 Win 10 后,出现 Dev-C++ makefile.win 编译错误
- 如何使用 WIN RPC 发送终止的字符数组(用于将图像从客户端上传到服务器)
- 放大倍率低于 125% 默认 win API(介于 101 - 124% 之间)
- C++ API-MS-WIN-SERVICE-PRIVATE-L1-1-1.DLL依赖项问题
- [WIN API]为什么共享相同的 WriteFile(sync) 和 ReadFile(sync) 句柄会导致 Rea
- 尝试在 win 32 中禁用窗口大小调整时,窗口样式行为不一致
- 切换语句不起作用 c++ 和 D:\c++ dev-c\Makefile.win 目标"abc.o"的配方失败
- C++ WIN API:为什么我不能使用WM_CREATE
- 如何使用 Win API 获取文件夹中的文件列表(带过滤器)
- win api readConsole()
- C DLL通过C#UWP应用程序中的Win运行时组件适用于ARM,但对于X86/X64不适用于
- 如何确保Win-Builder用C 11构建我的包裹