mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 04:27:44 +00:00
CrashReporter: Show pledge violation in backtrace
This commit is contained in:
parent
678919e9c1
commit
17f90e72b4
1 changed files with 7 additions and 6 deletions
|
@ -60,12 +60,11 @@ static TitleAndText build_backtrace(const CoreDump::Reader& coredump, const ELF:
|
||||||
|
|
||||||
StringBuilder builder;
|
StringBuilder builder;
|
||||||
|
|
||||||
auto prepend_assertion = [&] {
|
auto prepend_metadata = [&](auto& key, auto& fmt) {
|
||||||
auto assertion = coredump.metadata().get("assertion");
|
auto maybe_value = coredump.metadata().get(key);
|
||||||
if (!assertion.has_value() || assertion.value().is_empty())
|
if (!maybe_value.has_value() || maybe_value.value().is_empty())
|
||||||
return;
|
return;
|
||||||
builder.append("ASSERTION FAILED: ");
|
builder.appendff(fmt, maybe_value.value());
|
||||||
builder.append(assertion.value().characters());
|
|
||||||
builder.append('\n');
|
builder.append('\n');
|
||||||
builder.append('\n');
|
builder.append('\n');
|
||||||
};
|
};
|
||||||
|
@ -74,7 +73,9 @@ static TitleAndText build_backtrace(const CoreDump::Reader& coredump, const ELF:
|
||||||
for (auto& entry : backtrace.entries()) {
|
for (auto& entry : backtrace.entries()) {
|
||||||
if (first_entry) {
|
if (first_entry) {
|
||||||
if (entry.function_name.starts_with("__assertion_failed"))
|
if (entry.function_name.starts_with("__assertion_failed"))
|
||||||
prepend_assertion();
|
prepend_metadata("assertion", "ASSERTION FAILED: {}");
|
||||||
|
else if (coredump.metadata().contains("pledge_violation"))
|
||||||
|
prepend_metadata("pledge_violation", "Has not pledged {}");
|
||||||
first_entry = false;
|
first_entry = false;
|
||||||
} else {
|
} else {
|
||||||
builder.append('\n');
|
builder.append('\n');
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue