c++ - Boost UTF unit_test_main 的命令行参数

标签 c++ memory-corruption boost-unit-test-framework

我有自己的 Boost 测试运行器,我将参数传递给 unit_test_main,如下所示:

char *myargs[] = {"", "--log_level=test_suite", "report_level=detailed", "output_format=xml", "--run_test=my_manual_test_suite1,my_manual_test_suite2"};

选择测试套件,执行测试用例。但是,在我的程序执行结束时,我遇到了内存损坏。有什么原因吗?

我的测试运行器是一个单独的 cpp 文件,其中包含所有测试用例以及 unit_test_main

编辑:我忘了补充一点,如果我从我的程序外部传递参数,就不会损坏。这很奇怪。

最佳答案

你能再分享一些代码吗?我想看看您在本地传递参数与从程序外部传递参数的区别。

编辑:

好的,我想我明白了。当您从外部传入参数时,它们会按顺序排列。例如,假设您调用 test.exe --log_level=all --run_test=mt1。例如,第一个 arg 的地址是 0x10000。然后下一个arg的地址--log_level=all从0x10009开始等等。当您自己串起 argv 时,情况并非如此。所以我的建议是像上面那样按顺序放置参数并试一试。

关于c++ - Boost UTF unit_test_main 的命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22726967/

相关文章:

c++ - 传递函数作为参数

C++ glibc 检测到损坏的双链表错误 C++

c - C中的字符串溢出检测

unit-testing - Boost 单元测试框架报告的 "mks"单元是什么?

c++ - 我的代码在 .begin() 作为参数传递时不起作用,但在我将 .begin() 转换为迭代器后起作用

c++ - 对整数的数字进行排序

java - 无符号短字节数组

javascript - 什么可能导致 JavaScript 中的内存损坏?

c++ - 我可以访问 BOOST_LOG_TRIVIAL 使用的流实例吗?