2014-12-22 3 views
3

У меня очень похожая проблема на this post, но с однопоточной программой на C++: когда утверждение не выполняется во время отладки в Visual Studio 2013, отладчик немедленно выходит из строя, не показывая утверждение отказ окно сообщения, которое должно выглядеть примерно так:Visual Studio выходит из строя утверждения без сообщения об ошибке

enter image description here

(. Эта картина не из моего собственного кода)

сообщение только ошибка:

The program '[5156] myprogram.exe' has exited with code 3 (0x3). 

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

Ответ на вопрос связанный предложил добавить вызов:

_CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_DEBUG); 

в начале программы, так что ошибка утверждение по меньшей мере, выводится в окне вывода. Однако это не только взломанно, но и не обязательно для любой другой программы, которую я отлаживал в Visual Studio.

Это не мой собственный проект Visual Studio, и мне интересно, где-то где-то есть изгои. Я включил «Break, когда генерируется исключение» для ошибок утверждения в Debug -> Exceptions, так что это не проблема.

Как я могу заставить «Утвердить отладочную ошибку!»? появляется окно сообщения, когда утверждение не выполняется?

ответ

1

В моем случае проблема заключалась в том, что Configuration Properties -> C/C++ -> Generation Code -> Runtime Library была установлена ​​на «Multi-threaded» для сборки Debug и Release. Правильная настройка - «Многопоточная отладка» для сборки Debug и «Multi-threaded» для сборки выпусков.

+0

В моем проекте установлен многопоточный отладчик, но я до сих пор не получаю никаких окон утверждения. –

Смежные вопросы