我使用VS 2010.
我需要运行由.exe
组成的BOOST_AUTO_TEST_SUITE
来在调试器下测试我的库,因为我遇到内存访问冲突和内存泄漏。我没有主要功能,只有exe(以及.cpp文件)。
如何在调试器下运行此exe文件?
更新
如果你有一个包含多个项目的解决方案,并且你需要运行包含单元测试的1个项目,例如,在调试器下,你需要:
Solution explorer
"Set as StartUp project"
Personaly我不知道我需要将我的项目设置为启动。
答案 0 :(得分:0)
您可以尝试调试测试套件,这是我建议您解决此问题的顺序:
设置BOOST_TEST_CATCH_SYSTEM_ERRORS环境变量以获得更好的故障堆栈跟踪。
在(所有)测试的开始和结束时设置断点,因为您的问题更可能与测试有关,而不是框架和测试的设置。< / p>
在Visual Studio中打开boost/test/impl/unit_test_main.ipp
包含文件,并在unit_test_main
方法中设置断点。您将逐步完成测试执行监视器,但这很少提供更多的洞察力,而不仅仅是简单地查看测试本身。
这很少需要,但您也可以使用Debug + Windows + Breakpoints + New,Function在第一个主页上显式启动。在CRT启动之前,可以在Windows上调用四种主要方法: mainCRTStartup , wmainCRTStartup , WinMainCRTStartup , wWinMainCRTStartup
对于内存泄漏,请确保使用带有订单分配ID的--detect-memory-leak
开关:
The Execution Monitor provides a limited ability to detect memory leaks during program execution, and to break program execution on specific memory allocation order number (1 - first allocation of memory in program, 2 - second and so on).
此外,检查如何run individual tests by name,如果你只能隔离测试的错误子集,它通常会使调试更容易。
答案 1 :(得分:0)
<强>更新强>
如果你有一个包含多个项目的解决方案,并且你需要运行包含单元测试的1个项目,例如,在调试器下,你需要:
Solution explorer
"Set as StartUp project"
Personaly我不知道我需要将我的项目设置为启动。