mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 14:47:44 +00:00
CrashReporter: Only create coredump metadata hash map once
We were rebuilding the metadata map a bunch of times on startup.
This commit is contained in:
parent
66a27f37db
commit
e238435c4f
1 changed files with 4 additions and 3 deletions
|
@ -59,11 +59,12 @@ struct TitleAndText {
|
||||||
static TitleAndText build_backtrace(const CoreDump::Reader& coredump, const ELF::Core::ThreadInfo& thread_info, size_t thread_index)
|
static TitleAndText build_backtrace(const CoreDump::Reader& coredump, const ELF::Core::ThreadInfo& thread_info, size_t thread_index)
|
||||||
{
|
{
|
||||||
CoreDump::Backtrace backtrace(coredump, thread_info);
|
CoreDump::Backtrace backtrace(coredump, thread_info);
|
||||||
|
auto metadata = coredump.metadata();
|
||||||
|
|
||||||
StringBuilder builder;
|
StringBuilder builder;
|
||||||
|
|
||||||
auto prepend_metadata = [&](auto& key, StringView fmt) {
|
auto prepend_metadata = [&](auto& key, StringView fmt) {
|
||||||
auto maybe_value = coredump.metadata().get(key);
|
auto maybe_value = metadata.get(key);
|
||||||
if (!maybe_value.has_value() || maybe_value.value().is_empty())
|
if (!maybe_value.has_value() || maybe_value.value().is_empty())
|
||||||
return;
|
return;
|
||||||
builder.appendff(fmt, maybe_value.value());
|
builder.appendff(fmt, maybe_value.value());
|
||||||
|
@ -73,9 +74,9 @@ static TitleAndText build_backtrace(const CoreDump::Reader& coredump, const ELF:
|
||||||
|
|
||||||
auto& backtrace_entries = backtrace.entries();
|
auto& backtrace_entries = backtrace.entries();
|
||||||
|
|
||||||
if (coredump.metadata().contains("assertion"))
|
if (metadata.contains("assertion"))
|
||||||
prepend_metadata("assertion", "ASSERTION FAILED: {}");
|
prepend_metadata("assertion", "ASSERTION FAILED: {}");
|
||||||
else if (coredump.metadata().contains("pledge_violation"))
|
else if (metadata.contains("pledge_violation"))
|
||||||
prepend_metadata("pledge_violation", "Has not pledged {}");
|
prepend_metadata("pledge_violation", "Has not pledged {}");
|
||||||
|
|
||||||
auto first_entry = true;
|
auto first_entry = true;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue