Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio Visual Studio在断言失败时退出,没有错误消息 我有一个非常类似的问题,但是使用一个单线程C++程序:当在VisualStudio 2013中调试时断言失败,调试器立即退出,而不显示断言失败消息框,它应该看起来像这样:_Visual Studio_Visual C++_Visual Studio 2013 - Fatal编程技术网

Visual studio Visual Studio在断言失败时退出,没有错误消息 我有一个非常类似的问题,但是使用一个单线程C++程序:当在VisualStudio 2013中调试时断言失败,调试器立即退出,而不显示断言失败消息框,它应该看起来像这样:

Visual studio Visual Studio在断言失败时退出,没有错误消息 我有一个非常类似的问题,但是使用一个单线程C++程序:当在VisualStudio 2013中调试时断言失败,调试器立即退出,而不显示断言失败消息框,它应该看起来像这样:,visual-studio,visual-c++,visual-studio-2013,Visual Studio,Visual C++,Visual Studio 2013,(这张图片不是我自己的代码。) 唯一的错误消息是: The program '[5156] myprogram.exe' has exited with code 3 (0x3). 这使得几乎不可能找出断言失败发生的位置,因为代码库非常大 对相关问题的答复建议增加一项呼吁: _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_DEBUG); 在程序开始时,使断言错误至少打印到输出窗口。然而,这不仅是黑客行为,而且对于我在VisualStudio中调试过的任

(这张图片不是我自己的代码。)

唯一的错误消息是:

The program '[5156] myprogram.exe' has exited with code 3 (0x3).
这使得几乎不可能找出断言失败发生的位置,因为代码库非常大

对相关问题的答复建议增加一项呼吁:

_CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_DEBUG);
在程序开始时,使断言错误至少打印到输出窗口。然而,这不仅是黑客行为,而且对于我在VisualStudio中调试过的任何其他程序都不是必需的

这不是我自己的VisualStudio项目,我想知道是否有恶意设置。我在Debug->Exceptions中为断言错误启用了“抛出异常时中断”,所以这不是问题所在


如何在断言失败时强制显示“Debug Assertion Failed!”消息框?

在我的例子中,问题是调试版本和发布版本的配置属性->C/C++->代码生成->运行库都设置为“多线程”。对于调试版本,正确的设置是“多线程调试”,对于发布版本,正确的设置是“多线程调试”。

您可以尝试设置一个自定义的无效\u参数\u处理程序

我在使用vs2017时遇到了类似的问题

当我使用vs2017进行调试时,以下代码不会触发调试断言失败通知

chardst[128]={0};
char src[256]={0};
memcpy_s(dst、sizeof(dst)、src、sizeof(src));

但当我设置自定义处理程序时。它起作用了。签出这个

在我的项目中它被设置为多线程调试,但我仍然没有得到任何断言窗口。