mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2026-01-10 11:11:40 +01:00
see: https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/36722 https://www.openwall.com/lists/musl/2021/07/16/1 https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/22958
67 lines
1.9 KiB
Diff
67 lines
1.9 KiB
Diff
diff --git a/src/debug-func.hpp b/src/debug-func.hpp
|
|
index a4ff962..be49328 100644
|
|
--- a/src/debug-func.hpp
|
|
+++ b/src/debug-func.hpp
|
|
@@ -2,7 +2,6 @@
|
|
#include <wayfire/debug.hpp>
|
|
#include <sstream>
|
|
#include <iomanip>
|
|
-#include <execinfo.h>
|
|
#include <cxxabi.h>
|
|
#include <cstdio>
|
|
#include <dlfcn.h>
|
|
@@ -213,45 +212,13 @@ addr2line_result locate_source_file(const demangling_result& dr)
|
|
void wf::print_trace(bool fast_mode)
|
|
{
|
|
void *addrlist[MAX_FRAMES];
|
|
- int addrlen = backtrace(addrlist, MAX_FRAMES);
|
|
+ int addrlen = 0;
|
|
if (addrlen == 0)
|
|
{
|
|
LOGE("Failed to determine backtrace, recompile with ASAN!");
|
|
|
|
return;
|
|
}
|
|
-
|
|
- char **symbollist = backtrace_symbols(addrlist, addrlen);
|
|
-
|
|
- for (int i = 1; i < addrlen; i++)
|
|
- {
|
|
- auto result = demangle_function(symbollist[i]);
|
|
-
|
|
- std::ostringstream line;
|
|
- line << '#' << std::left << std::setw(2) << i << " ";
|
|
- if (HAS_ADDR2LINE && !fast_mode && result.address.size() &&
|
|
- result.executable.size())
|
|
- {
|
|
- auto source = locate_source_file(result);
|
|
- line << source.function_name << " " << source.function_source;
|
|
- } else if (result.function_name.size())
|
|
- {
|
|
- line << result.function_name << " at " << result.address;
|
|
- } else
|
|
- {
|
|
- line << symbollist[i];
|
|
- }
|
|
-
|
|
- auto contents = line.str();
|
|
- if (contents.size() && (contents.back() == '\n'))
|
|
- {
|
|
- contents.pop_back();
|
|
- }
|
|
-
|
|
- wf::log::log_plain(wf::log::LOG_LEVEL_ERROR, contents);
|
|
- }
|
|
-
|
|
- free(symbollist);
|
|
}
|
|
|
|
/* ------------------- Impl of debugging functions ---------------------------*/
|
|
@@ -284,4 +251,4 @@ wf::pointf_t operator *(const glm::mat4& m, const wf::pointf_t& p)
|
|
wf::pointf_t operator *(const glm::mat4& m, const wf::point_t& p)
|
|
{
|
|
return m * wf::pointf_t{1.0 * p.x, 1.0 * p.y};
|
|
-}
|
|
+}
|
|
\ No newline at end of file
|