在BUILD文件中设置"--test_arg"和"--test_env"来捕获SEGFAULT信息。
示例代码:
在可测试的目标的BUILD文件中添加以下内容:
cc_test(
name = "my_test",
srcs = ["my_test.cc"],
test_arg = ["--gtest_filter=MyTest.*", "--catch_system_errors=1"],
test_env = ["LD_BIND_NOW=1"],
)
其中:
test_arg
添加 --catch_system_errors=1
选项来捕获 SEGFAULT 信息
test_env
添加 LD_BIND_NOW=1
环境变量以确保链接错误立即被捕获。
运行测试时,将捕获SEGFAULT信息,例如:
$ bazel test //path/to:my_test --test_output=all
...
/path/to/my_test: my_test.cc:42: FAIL
Tests passed: 5, failed: 1, total: 6
...
/build/bazel-user/.../execroot/__main__/bazel-out/k8-fastbuild/testlogs/path/to/my_test/test.log
/path/to/my_test: Segmentation fault
在 test.log
文件中可以找到详细的 SEGFAULT 信息。