Visual Studio 2017 - Ошибка подтверждения не отображается? - PullRequest
0 голосов
/ 02 ноября 2019

Внезапно VS2017 не отображает запрос Abort, Ignore, Retry, когда происходит сбой assert(). Все, что он делает, это выводит в окно output и выходит из программы, поэтому я не могу отладить его.

Я сделал ремонтную установку, ничего не изменил. JIT включен (собственный код), используя отладочную версию и библиотеки. Работает нормально.

Вот ошибка, которую я получаю:

Press Retry to debug the application - JIT must be enabled)Assertion failed!
Program: C:\Test\x64\Debug\Test.exe  
File: C:\Test\Test\owner-draw-buttons.cpp  
Line: 144  
Expression: 0 

    For information on how your program can cause an assertion failure, see the 
Visual C++ documentation on asserts (Press Retry to debug the application - JIT 
must be enabled)Debug Error! Program: C:\Test\x64\Debug\Test.exe abort() has 
been called (Press Retry to debug the application) The thread 0x3524 has exited 
with code 3 (0x3). The program '[10772] Test.exe' has exited with code 3 (0x3).

Есть идеи как исправить?

TIA !!

1 Ответ

0 голосов
/ 04 ноября 2019

Для JIT is enabled (native code), возможно, вы находитесь в проекте C ++. Я могу только догадываться, что это как-то связано с Windows SDK версией и ucrtbase.dll в ней.

Чтобы решить эту проблему:

1.Пожалуйста, попробуйте обновить вашVS2017 до последней версии 15.9.17

2. Обновление ОС Windows до более новой версии (1903 на моем компьютере), см. Эту аналогичную проблему (ссылка на скачивание недействительна, я предлагаю вам обновитьСистема Windows напрямую, а не установка sdk отдельно).

После этого перезагрузите ПК и создайте простой консольный проект C ++ с assert(false);, чтобы проверить, вернется ли теперь диалоговое окно. Надеюсь, это поможет:)

Кроме того, в качестве временного решения можно попробовать _CrtSetReportMode и _CrtSetReportFile. См это .

...