summaryrefslogtreecommitdiffstats
path: root/contrib/libs/apache/arrow/patches/add-backtrace.patch
blob: 34b0a8289d86b85f45d385a118c690edeffa385f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
diff --git a/contrib/libs/apache/arrow/cpp/src/arrow/util/logging.cc b/contrib/libs/apache/arrow/cpp/src/arrow/util/logging.cc
--- a/contrib/libs/apache/arrow/cpp/src/arrow/util/logging.cc
+++ b/contrib/libs/apache/arrow/cpp/src/arrow/util/logging.cc
@@ -18,7 +18,8 @@
 #include "arrow/util/logging.h"
 
 #ifdef ARROW_WITH_BACKTRACE
-#include <execinfo.h>
+#include <util/system/backtrace.h>
+#include <util/stream/output.h>
 #endif
 #include <cstdlib>
 #include <iostream>
@@ -93,9 +94,8 @@ class CerrLog {
 
   void PrintBackTrace() {
 #ifdef ARROW_WITH_BACKTRACE
-    void* buffer[255];
-    const int calls = backtrace(buffer, static_cast<int>(sizeof(buffer) / sizeof(void*)));
-    backtrace_symbols_fd(buffer, calls, 1);
+    FormatBackTrace(&Cout);
+    Cout.Flush();
 #endif
   }
 };