Сбой на компьютере клиента - PullRequest
2 голосов
/ 11 декабря 2019

Наше программное обеспечение (32-битный код) падает на одном из компьютеров нашего клиента по недопустимой инструкции (исключение: код c000001d). Авария происходит очень рано после запуска программы, скорее всего, в некотором коде запуска c ++.

ЦП, о котором Windows сообщает на этом компьютере «Intel (R) Xeon (R) Gold 5115 @ 2,40 ГГц (4 процессора)»"и операционной системой является" Windows Sever 2012 R2 Standard "."

Очевидно, что это инструкция AVX512 (начиная с 0x62, 0xf1), которая вызывает проблему.

Наше программное обеспечение скомпилировано с VisualStudio 2019 и эти (вероятно, соответствующие) настройки:

  • внешние двоичные библиотеки не используются (кроме стандартных библиотек импорта Windows и статически связанных MFC), весь код компилируется с параметрами ниже
  • внешние dll не используются
  • Набор инструментов платформы: Visual Studio 2019 (v142)
  • Версия Windows SDK: 8.1
  • Стандарт языка C ++: ISO C ++ 17
  • Включить расширенный набор инструкций: не установлено (это означает, что используются инструкции SSE2, но нет инструкций AVX, как указано в документации MS).

Что мне здесь нравитсятот факт, что предыдущая версия программного обеспечения, очевидно, работает на том же компьютере, но эта версия была сгенерирована с Visual Studio 2017, набор инструментов платформы Visual Studio 2015 (v140) вместо v142 и со стандартом языка C ++: ISO C ++ 14 вместо ISO C ++ 17 .

Все остальные настройки были такими же. Это основные различия между этими двумя версиями, остальное - лишь незначительные исправления в коде.

Это вся информация, которая у меня есть сейчас.

Кто-нибудь сталкивался с подобной проблемой? Или хоть какие-то подсказки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...