【发布时间】:2010-01-27 16:33:59
【问题描述】:
如何防止在 Windows 机器上断言失败时出现调试弹出窗口?我正在编写的应用程序是基于控制台的,当它在测试模式下执行时,我使用 assert() 来测试某些东西。我正在使用 MinGW + GCC 4。
编辑:这是测试程序。
#include <stdlib.h>
#include <assert.h>
int main(void) {
_set_error_mode(_OUT_TO_STDERR);
assert(0 == 1);
return EXIT_SUCCESS;
}
标志:gcc -mwindows -pedantic -Wall -Wextra -c -g -Werror -MMD -MP -MF ...
在没有-mwindows 的情况下也试过了。无论如何,我仍然会得到调试弹出窗口。这是在 Vista x86 机器上。
【问题讨论】:
-
assert()默认打印到标准错误;仅当您使用-mwindows标志进行编译时才会出现弹出窗口... -
我没有用这样的标志编译。