mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 06:57:45 +00:00
LibCoredump: Show frames from Loader.so if the crash occurs in it
Previously we rejected all entries from Loader.so even if the faulting address was located in it, i.e. the actual issue was with the dynamic loader. We no longer do that to make debugging Loader crashes easier.
This commit is contained in:
parent
bb4bb3c2f4
commit
3c3df95958
2 changed files with 8 additions and 2 deletions
|
@ -105,8 +105,13 @@ void Backtrace::add_entry(const Reader& coredump, FlatPtr ip)
|
|||
return;
|
||||
}
|
||||
auto object_name = ip_region->object_name();
|
||||
if (object_name == "Loader.so")
|
||||
return;
|
||||
// Only skip addresses coming from Loader.so if the faulting instruction is not in Loader.so
|
||||
if (object_name == "Loader.so") {
|
||||
if (m_skip_loader_so)
|
||||
return;
|
||||
} else {
|
||||
m_skip_loader_so = true;
|
||||
}
|
||||
// We need to find the first region for the object, just in case
|
||||
// the PT_LOAD header for the .text segment isn't the first one
|
||||
// in the object file.
|
||||
|
|
|
@ -47,6 +47,7 @@ private:
|
|||
void add_entry(const Reader&, FlatPtr ip);
|
||||
ELFObjectInfo const* object_info_for_region(ELF::Core::MemoryRegionInfo const&);
|
||||
|
||||
bool m_skip_loader_so { false };
|
||||
ELF::Core::ThreadInfo m_thread_info;
|
||||
Vector<Entry> m_entries;
|
||||
HashMap<String, NonnullOwnPtr<ELFObjectInfo>> m_debug_info_cache;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue