gpt4 book ai didi

c++ - Visual Studio 不会因断言违规而中断

转载 作者:行者123 更新时间:2023-12-05 04:54:36 27 4
gpt4 key购买 nike

我正在 Visual Studio 2019 中为一个由 CMake 管理并使用 MinGW 构建的项目调试 CMake 目标。

但是,当断言失败时,调试器会简单地退出,而不会给我调用堆栈或让我检查程序的当前状态。 (正常断点会按预期暂停执行。)

breakpoints_work

我在 Debug > Windows > Exception Settings 中为所有 C++ 异常启用了 Break When Thrown,但无济于事。

如何在断言失败时让 Visual Studio 中断执行?

最佳答案

如果您的项目是“控制台”应用程序而不是“Windows”应用程序,并且您使用了 ,那么根据 documentation :

The destination of the diagnostic message depends on the type ofapplication that called the routine. Console applications receive themessage through stderr. In a Windows-based application, assert callsthe Windows MessageBox function to create a message box to display themessage with three buttons: Abort, Retry, and Ignore

所以一个可能的解决方案是暂时将您的程序构建为 "Windows" app通过将 WIN32 选项添加到您的可执行文件定义中:

add_executable(<name> WIN32 [source1] [source2 ...])

关于c++ - Visual Studio 不会因断言违规而中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65685875/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com