carmius
carmius

Reputation: 151

.eh_frame FDE - where can the field "initial location" / address range be found/resolved?

When reading about sections like .eh_frame and .debug_frame in the DWARF standard it says that in Frame Description Entries (FDE) there is a field that's called:

address_range (target address)
The number of bytes of program instructions described by this entry.

The linux foundation (https://refspecs.linuxfoundation.org/LSB_3.0.0/LSB-Core-generic/LSB-Core-generic/ehframechpt.html) also documents this field as

PC Begin    Required
PC Range    Required

But when reading the raw bytes there's no addresses there to be found. Normally, in other DWARF-related debug data, the addresses are actually stored, as bytes representing the actual addresses, or some offset from some location, so that an address range can be resolved by parsing that location first.

Here, there seems to be no such thing and I can't find any documentation at all on how to parse this "initial location" (or PC Begin | PC Range). The data is not large enough to represent 8 bytes, so it's not just a matter of "reading the bytes" as it were.

Does anyone have any pointers on where one can read about this?

Upvotes: 0

Views: 116

Answers (0)

Related Questions