From 40dc98a117c1f050c4b95ab443af984ec2c33449 Mon Sep 17 00:00:00 2001 From: Danil Chapovalov Date: Mon, 12 Aug 2019 13:40:47 +0200 Subject: [PATCH] Print stack trace when a test crash That should simplify debugging failures caused by RTC_DCHECK/RTC_CHECK TBR=kwiberg@webrtc.org [to pass DEPS change check] Bug: None Change-Id: Idb8be3b79309b4ad0baf5ae480356aa5c8cfe361 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/148802 Commit-Queue: Danil Chapovalov Reviewed-by: Mirko Bonadei Reviewed-by: Artem Titov Cr-Commit-Position: refs/heads/master@{#28832} --- test/BUILD.gn | 2 ++ test/DEPS | 4 ++++ test/test_main.cc | 8 ++++++++ 3 files changed, 14 insertions(+) diff --git a/test/BUILD.gn b/test/BUILD.gn index bd99b5dd2b..7dafa3ab93 100644 --- a/test/BUILD.gn +++ b/test/BUILD.gn @@ -278,6 +278,8 @@ if (rtc_include_tests) { deps = [ ":test_main_lib", + "//third_party/abseil-cpp/absl/debugging:failure_signal_handler", + "//third_party/abseil-cpp/absl/debugging:symbolize", ] } diff --git a/test/DEPS b/test/DEPS index 02810f2936..0f4fd2fcce 100644 --- a/test/DEPS +++ b/test/DEPS @@ -46,6 +46,10 @@ specific_include_rules = { ".*stun_validator_fuzzer\.cc": [ "+p2p/base/stun.h", ], + ".*test_main\.cc": [ + "+absl/debugging/failure_signal_handler.h", + "+absl/debugging/symbolize.h", + ], ".*test_peer\.(h|cc)": [ "+pc", "+p2p", diff --git a/test/test_main.cc b/test/test_main.cc index 1a311f63c2..5046979548 100644 --- a/test/test_main.cc +++ b/test/test_main.cc @@ -10,9 +10,17 @@ #include +#include "absl/debugging/failure_signal_handler.h" +#include "absl/debugging/symbolize.h" #include "test/test_main_lib.h" int main(int argc, char* argv[]) { + // Initialize the symbolizer to get a human-readable stack trace + absl::InitializeSymbolizer(argv[0]); + + absl::FailureSignalHandlerOptions options; + absl::InstallFailureSignalHandler(options); + std::unique_ptr main = webrtc::TestMain::Create(); int err_code = main->Init(&argc, argv); if (err_code != 0) {