如何在运行 ctest 时获取docker 中的核心转储文件?

How to get core dump file in docker while running ctest?

我尝试在 docker 中使用 ctest 并行 运行 我的测试 environment.This 是我执行的命令;

ctest -R MyTest -j 10 -VV --stop-on-failure --output-on-failure --repeat-until-fail 1000

在测试 运行 时,我 偶尔会遇到段错误

Test #1463: MyTest.case1...***Exception: SegFault  0.15 sec

我想做的基本上是了解哪里出了问题。在这方面,我想要一个核心转储文件。但显然,docker环境中没有生成核心转储文件。

我的问题是,是否有一种方法可以通过提供 ctest 参数来了解导致问题的原因,或者是否会在由于 ctest 中的段错误而导致任何测试失败的情况下生成核心转储文件。

提前致谢。

幸运的是,我找到了 gtest-parallel 库,以便能够 运行 我的并行测试并获得核心转储文件。不过,它的选择有限。尽管如此,帮助我弄清楚出了什么问题。顺便说一句,这就是我 运行 我使用这个库进行测试的方式。

./gtest-parallel MyTests --gtest_filter=Fixture1.* --output_dir . --repeat=100 --workers=10

执行此命令后;如果有任何段错误测试,它会创建一个名为 core 的文件,其中包含有关此测试的核心转储。希望这对可能有同样问题的人有所帮助。