From 1b63c8f3b001e3f4fd7d2ced823403c57616da66 Mon Sep 17 00:00:00 2001 From: Daniel Bertalan Date: Sat, 9 Oct 2021 16:41:43 +0200 Subject: [PATCH] LibCoredump: Accept dynamic libraries with versioned names Our Clang toolchain uses versioned names for its shared libraries, meaning that our applications link against `libc++.so.1.0`, not simply `libc++.so`. Without this change, the LLVM runtime libraries are excluded from backtraces, which makes debugging toolchain issues harder. --- Userland/Libraries/LibCoredump/Backtrace.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Userland/Libraries/LibCoredump/Backtrace.cpp b/Userland/Libraries/LibCoredump/Backtrace.cpp index 814d6f1d38..6ee694440b 100644 --- a/Userland/Libraries/LibCoredump/Backtrace.cpp +++ b/Userland/Libraries/LibCoredump/Backtrace.cpp @@ -20,7 +20,7 @@ namespace Coredump { ELFObjectInfo const* Backtrace::object_info_for_region(ELF::Core::MemoryRegionInfo const& region) { auto path = region.object_name(); - if (!path.starts_with('/') && path.ends_with(".so"sv)) + if (!path.starts_with('/') && (path.ends_with(".so"sv) || path.contains(".so."sv))) path = LexicalPath::join("/usr/lib", path).string(); auto maybe_ptr = m_debug_info_cache.get(path);