Mongodb Cxx 驱动程序测试在发布版本中崩溃 [在调试中工作正常]
Posted
技术标签:
【中文标题】Mongodb Cxx 驱动程序测试在发布版本中崩溃 [在调试中工作正常]【英文标题】:Mongodb Cxx Driver Test crashing in Release Build [ Works fine in Debug ] 【发布时间】:2017-07-03 11:10:25 【问题描述】:我已经按照here 描述的步骤在 Windows 中构建了 mongodb cxx 二进制文件。
我已按照步骤中的说明创建了测试应用程序。
在发布版本上,应用程序抛出bad allocation
异常:
std::bad_alloc at memory location 0x0047EB60
] 在这一行:
mongocxx::uri muri uri_string ;
同样的代码适用于调试版本。
有人可以帮我解决发布版本中的问题吗?
【问题讨论】:
您能否使用 Visual Studio 的调试器提供错误发生时间的堆栈跟踪? 我在 Release 中构建了 mongocxx 和 bsoncxx 并使用它后,我的问题得到了解决,感谢您的支持 堆栈跟踪:vcruntime140d.dll!59aa4970() 未知 [下面的帧可能不正确和/或丢失,没有为 vcruntime140d.dll 加载符号] [外部代码] > bsoncxx.dll!boost:: basic_string_ref我在 Release 中构建了 mongocxx 和 bsoncxx 并使用它后,我的问题得到了解决。以前我在发布时在调试和测试应用程序中构建了这些。 需要匹配目标配置。
【讨论】:
在 64 中构建 LIBSON:cmake -G "Visual Studio 14 2015 Win64" "-DCMAKE_INSTALL_PREFIX=C:\mongo-c-driver" C 驱动程序 in 64: cmake -G "Visual Studio 14 2015 Win64" "-DCMAKE_INSTALL_PREFIX=C:\mongo-c-driver" "-DBSON_ROOT_DIR=C:\mongo-c-driver" Cxx 驱动程序:cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_INSTALL_PREFIX=C:\mongo-cxx-driver -DCMAKE_PREFIX_PATH=c:\mongo-c-driver -DBOOST_ROOT=C:\boost_1_64_0 -DLIBBSON_DIR=c:\mongo-c-driver -DLIBMONGOC_DIR=c:\mongo-c-driver Win64 : 可选,和c驱动一样以上是关于Mongodb Cxx 驱动程序测试在发布版本中崩溃 [在调试中工作正常]的主要内容,如果未能解决你的问题,请参考以下文章
mongo-cxx-driver-legacy-1.1.2 SCRAM-SHA-1身份验证错误
如何在启动 C++ 应用程序时检查 mongodb 是不是正在运行
我可以阻止 GoogleTest-build 修改全局 CMAKE_CXX_FLAGS 变量吗?