Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion src/eh_frame.cc
Original file line number Diff line number Diff line change
Expand Up @@ -189,8 +189,16 @@ void ReadEhFrame(string_view data, RangeSink* sink) {
ReadEncodedPointer(encoding, true, &entry, nullptr, sink);
break;
}
case 'G':
case 'B': {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense to me, we might also consider handling G while we're at it. I think similarly that's a flag and we can just ignore it. What do you think?

Copy link
Author

@jianliang00 jianliang00 Nov 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I haven’t come across this tag before, but after looking into it, it does seem like it can be safely ignored. I'll add it in this patch.

// Some compilers emit a G/B augmentation character. We don't
// currently handle it, but it's not a fatal error.
// ref: https://github.com/llvm-mirror/libunwind/commit/0930d6cee2caf71685a84b648f85a2f80bc182c4
break;
}
default:
THROW("Unexepcted augmentation character");
std::string aug_char(1, aug_string[0]);
THROWF("Unexepcted augmentation character: $0", aug_char);
}
aug_string.remove_prefix(1);
}
Expand Down