Browse Source

Rollback: r9145043
[diff-resolver:svkrasnov] Sandbox task: https://sandbox.yandex-team.ru/task/1216524490/view
Task author: omakovski@
Description: Revert 9145043

Note: mandatory check (NEED_CHECK) was skipped
ref:dbe6517dcb523875d1e5de010069988b428c98bb

robot-srch-releaser 3 years ago
parent
commit
0bd0e5d1ab
2 changed files with 6 additions and 69 deletions
  1. 6 24
      util/generic/yexception.cpp
  2. 0 45
      util/generic/yexception_ut.cpp

+ 6 - 24
util/generic/yexception.cpp

@@ -14,39 +14,21 @@ TString FormatExc(const std::exception& exception) {
     return TString::Join(TStringBuf("("), TypeName(exception), TStringBuf(") "), exception.what());
 }
 
-static TString BackTraceToString(const TBackTrace& backtrace) {
-    try {
-        Y_ENSURE(backtrace.size() > 0, "backtrace is empty");
-        return backtrace.PrintToString();
-    } catch (const std::exception& e) {
-        return TString::Join("Failed to print backtrace: ", FormatExc(e));
-    }
-}
-
 TString CurrentExceptionMessage() {
     auto exceptionPtr = std::current_exception();
     if (exceptionPtr) {
         try {
             std::rethrow_exception(exceptionPtr);
         } catch (const yexception& e) {
-            const TBackTrace* btPtr;
-#ifdef _YNDX_LIBUNWIND_ENABLE_EXCEPTION_BACKTRACE
-            TBackTrace backtrace = TBackTrace::FromCurrentException();
-            btPtr = &backtrace;
-#else
-            btPtr = e.BackTrace();
-            if (!btPtr) {
-                return FormatExc(e);
+            const TBackTrace* bt = e.BackTrace();
+
+            if (bt) {
+                return TString::Join(bt->PrintToString(), TStringBuf("\n"), FormatExc(e));
             }
-#endif
-            return TString::Join(BackTraceToString(*btPtr), TStringBuf("\n"), FormatExc(e));
+
+            return FormatExc(e);
         } catch (const std::exception& e) {
-#ifdef _YNDX_LIBUNWIND_ENABLE_EXCEPTION_BACKTRACE
-            TBackTrace backtrace = TBackTrace::FromCurrentException();
-            return TString::Join(BackTraceToString(backtrace), TStringBuf("\n"), FormatExc(e));
-#else
             return FormatExc(e);
-#endif
         } catch (...) {
         }
 

+ 0 - 45
util/generic/yexception_ut.cpp

@@ -15,7 +15,6 @@ static inline void Throw2DontMove() {
 #include <util/random/mersenne.h>
 #include <util/stream/output.h>
 #include <util/string/subst.h>
-#include <util/string/split.h>
 
 #include "yexception_ut.h"
 #include "bt_exception.h"
@@ -49,8 +48,6 @@ class TExceptionTest: public TTestBase {
     UNIT_TEST(TestBackTrace)
     UNIT_TEST(TestEnsureWithBackTrace1)
     UNIT_TEST(TestEnsureWithBackTrace2)
-    UNIT_TEST(TestCurrentExceptionMessageWithLIBUNWIND)
-    UNIT_TEST(TestCurrentExceptionMessageWithInvalidBacktraceFormatter)
     UNIT_TEST(TestRethrowAppend)
     UNIT_TEST(TestMacroOverload)
     UNIT_TEST(TestMessageCrop)
@@ -131,48 +128,6 @@ private:
         UNIT_ASSERT(false);
     }
 
-    inline void TestCurrentExceptionMessageWithLIBUNWIND() {
-#ifdef _YNDX_LIBUNWIND_ENABLE_EXCEPTION_BACKTRACE
-        try {
-            throw std::logic_error("some exception"); // is instance of std::exception
-            UNIT_ASSERT(false);
-        } catch (...) {
-            TString exceptionMessage = CurrentExceptionMessage();
-            UNIT_ASSERT(exceptionMessage.Contains("(std::logic_error) some exception"));
-            TVector<TString> backtraceStrs = StringSplitter(exceptionMessage).Split('\n');
-            UNIT_ASSERT(backtraceStrs.size() > 1);
-        }
-#endif
-    }
-
-    inline void TestCurrentExceptionMessageWithInvalidBacktraceFormatter() {
-#ifdef _YNDX_LIBUNWIND_ENABLE_EXCEPTION_BACKTRACE
-        auto invalidFormatter = [](IOutputStream*, void* const*, size_t) {
-            Throw2DontMove();
-        };
-        SetFormatBackTraceFn(invalidFormatter);
-
-        try {
-            Throw1DontMove();
-            UNIT_ASSERT(false);
-        } catch (...) {
-            TString expected = "Failed to print backtrace: (yexception) "
-                               "util/generic/yexception_ut.cpp:8: 1 qw 12.1\n"
-                               "(yexception) util/generic/yexception_ut.cpp:4: blabla";
-            UNIT_ASSERT_EQUAL(CurrentExceptionMessage(), expected);
-        }
-        try {
-            throw std::logic_error("std exception");
-            UNIT_ASSERT(false);
-        } catch (...) {
-            TString expected = "Failed to print backtrace: (yexception) "
-                               "util/generic/yexception_ut.cpp:8: 1 qw 12.1\n"
-                               "(std::logic_error) std exception";
-            UNIT_ASSERT_EQUAL(CurrentExceptionMessage(), expected);
-        }
-#endif
-    }
-
     inline void TestVirtualInheritance() {
         TStringStream ss;