如何找出应用程序崩溃的原因 - Win 10 LTSB

How to find out why application crashes - Win 10 LTSB

本文关键字:Win LTSB 何找出 应用程序 崩溃      更新时间:2023-10-16

我有使用 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文件:

错误值列在"其他数据"部分中。用户操作

  1. 再次打开该文件。这种情况可能是一个临时问题,当程序再次运行时会自行纠正。
  2. 如果仍然无法访问该文件,并且
    • 它在网络上,您的网络管理员应验证网络没有问题,并且服务器可以 联系。
    • 它位于可移动磁盘(例如软盘或 CD-ROM(上,请验证该磁盘是否已完全插入计算机。
  3. 通过运行 CHKDSK 检查并修复文件系统。若要运行 CHKDSK,请单击"开始",单击"运行",键入 CMD,然后单击"确定"。在命令下 提示符,键入 CHKDSK/F,然后按 Enter。
  4. 如果问题仍然存在,请从备份副本还原文件。
  5. 确定是否可以打开同一磁盘上的其他文件。否则,磁盘可能已损坏。如果是硬盘,请联系您的 管理员或计算机硬件供应商以获得进一步的帮助。

其他数据错误值: 00000000 磁盘类型: 0

  • 我尝试在不同的机器上编译它,使用 VS 2017 15.8.4(不同于 15.7.4(,然后二进制文件在目标机器上工作。虽然,这不是解决方案,因为这台机器不用于"夜间构建"。
  • 依赖不显示任何缺少的依赖项

正如评论者指出我找到答案的正确方法: 事后调试 - 附加 WinDbg - 向我显示错误是"非法指令",该指令也是"vmovdqu",这是 AVX 指令。实用程序CoreInfo显示该机器CPU不支持AVX指令。解决方案是在没有此支持的情况下进行编译。