调试版本中的exe_common.inl中出现随机错误



我使用VS 2022社区版(v17.3.3(使用C++(v14.3-最新C++的功能(构建wxWidgets应用程序(v3.2.0(。windows SDK正在使用最新安装的(10.0.222621(。该项目也在使用C++模块。

调试构建成功,但当我随机运行项目的exe文件时,它在exe_common.inl中的以下行抛出异常(读取0xFFFFFF(ucrtbased.dll(的访问冲突(:

__scrt_current_native_startup_state = __scrt_native_startup_state::initialized;

再进行几次编译(只需进行一些小的更改即可触发编译(后,它就会成功,exe也会正确运行。

我想知道是否有任何设置可能会导致这个随机错误。顺便说一句,我正在使用Win11,但同样的事情也发生在Win10上。

提前谢谢。

编辑1:

该项目使用boost库,在启动时使用boost/json(boost/json也用于项目的其他部分(。调试器显示,在以下行之后,会发生上述错误:

static allocator_arg_t allocator_arg = BOOST_CONTAINER_DOC1ST(unspecified, *std_allocator_arg_holder<>::dummy);

有几件事需要注意:

  1. 停止使用CCD_ 2(文库十多年未维护(
  2. 主框架是一个单例数据结构,不再是,也不再是从wxMDIFrame派生的
  3. 去除了所有不必要的(一系列(#include
  4. 几个文件中包含的<boost/json.hpp>已被删除,现在仅在一个.cpp文件中使用#include <boost/json/src.hpp>。但是,该项目仍然使用在多个.h文件中包含<boost/json/value.hpp>
  5. 所有未初始化的指针变量和其他变量都已初始化

#1和#4是调试器特别指出的。现在已经过去几天了,从那以后就没有出现过问题。

最新更新