单元测试报错

为什么我下载的官方版本 的neuron 运行 单元测试,有时候报错,有时候没有错误。没有经过任何修改。 我发现错误的时候经常提示段错误。
我的
gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04)

Linux linux-server 6.8.0-40-generic #40~22.04.3-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 30 17:30:19 UTC 2 x86_64 x86_64 x86_64 GNU/Linux



许多的单元测试都存在此问题。 快速运行多次时出现,有时错误,但是重新运行有时就正常

可以用 gdb 捕获下错误



gdb 模式下 run 不会出现。只输出如上信息。

找到原因了 是因为 cmake … 默认启用了DISABLE_ASAN 此选项与默认cmaketool 的gdb冲突,所以莫名其妙产生段错误。我在cmake -DDISABLE_ASAN=ON … 即可
if(NOT DISABLE_ASAN)
set(CMAKE_C_FLAGS_DEBUG “${CMAKE_C_FLAGS} -fsanitize=address”)
set(CMAKE_CXX_FLAGS_DEBUG “-Wall -g -fsanitize=address”)
endif()

1 个赞