Visual Studio -严格调试构建

Visual Studio - Make debug build strict

本文关键字:调试 构建 Studio Visual      更新时间:2023-10-16

项目在调试版本中运行良好,但当我试图在发布版本中运行时,项目就陷入了无尽的access violation的海洋。
例如,第一次违反发生在:
log4cpp::PropertyConfigurator::configure(config_op->m_log4cpp);PropertyConfigurator采用QString参数
第二:
middle_widget[0]->show(); middle_widget[0]QWidget对象,并且已经初始化。

configureshow都不可能单步进入发布版本,我找不到违规原因的线索。

两个违规似乎访问了相同的位置0xbaadf00d:

Unhandled exception at 0x77ad15de in Npptrail-Empty.exe:   
0xC0000005: Access violation reading location 0xbaadf00d

据说调试版本比发布版本更具容忍度,这可能导致发布版本运行失败。但是我不想在调试构建完成后花费太多精力来清除所有访问违规。我想调试构建同样严格的发布。

我会尝试如下:

  • 构建版本与调试信息关闭优化。事实上,它将是调试构建,但没有调试宏。

  • 应用验证器。当你对句柄或临界区做了错误的操作时,它会抛出一个异常并给出解释。

  • 如果没有帮助-尝试调试释放模式。只需在调试器下运行即可。根据优化,您可能会看到异常的调用堆栈,并尝试更精确地使用一些日志记录以进行进一步调试。