【问题标题】:How to get core dump file in docker while running ctest?运行ctest时如何在docker中获取核心转储文件?
【发布时间】:2021-09-22 07:21:58
【问题描述】:

我尝试在 docker 环境中使用 ctest 并行运行我的测试。这是我执行的命令;

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环境中没有生成core dump文件。

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

提前致谢。

【问题讨论】:

    标签: c++ docker coredump ctest


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-20
      • 2020-03-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-23
      • 2015-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多