diff --git a/Libraries/LibELF/Image.cpp b/Libraries/LibELF/Image.cpp index ba1a7380d4..137f62b841 100644 --- a/Libraries/LibELF/Image.cpp +++ b/Libraries/LibELF/Image.cpp @@ -312,6 +312,8 @@ Optional Image::find_demangled_function(const String& name) const for_each_symbol([&](const Image::Symbol symbol) { if (symbol.type() != STT_FUNC) return IterationDecision::Continue; + if (symbol.is_undefined()) + return IterationDecision::Continue; auto demangled = demangle(symbol.name()); auto index_of_paren = demangled.index_of("("); if (index_of_paren.has_value()) { diff --git a/Libraries/LibELF/Image.h b/Libraries/LibELF/Image.h index d5f237ad49..7752f7f3e3 100644 --- a/Libraries/LibELF/Image.h +++ b/Libraries/LibELF/Image.h @@ -76,6 +76,7 @@ public: unsigned type() const { return ELF32_ST_TYPE(m_sym.st_info); } unsigned bind() const { return ELF32_ST_BIND(m_sym.st_info); } const Section section() const { return m_image.section(section_index()); } + bool is_undefined() const { return section_index() == 0; } StringView raw_data() const; private: