================
@@ -147,6 +149,27 @@ GetGNUEHPointer(const DataExtractor &DE, lldb::offset_t
*offset_ptr,
return baseAddress + addressValue;
}
+// Check if the given cie_id value indicates a CIE (Common Information Entry)
+// as opposed to an FDE (Frame Description Entry).
+//
+// For eh_frame sections: CIE is marked with cie_id == 0
+// For debug_frame sections:
+// - DWARF32: CIE is marked with cie_id ==
+// std::numeric_limits<uint32_t>::max()
+// - DWARF64: CIE is marked with cie_id ==
+// std::numeric_limits<uint64_t>::max()
+static bool IsCIEMarker(uint64_t cie_id, bool is_64bit,
+ DWARFCallFrameInfo::Type type) {
+ if (type == DWARFCallFrameInfo::EH)
+ return cie_id == 0;
+
+ // DWARF type
+ if (is_64bit)
+ return cie_id == std::numeric_limits<uint64_t>::max();
+
+ return cie_id == std::numeric_limits<uint32_t>::max();
----------------
dmpots wrote:
We already have these constants in the llvm Dwarf.h header
```
const uint32_t DW_CIE_ID = UINT32_MAX;
const uint64_t DW64_CIE_ID = UINT64_MAX;
```
We can use them from there
https://github.com/dmpots/llvm-project/blob/main/llvm/include/llvm/BinaryFormat/Dwarf.h#L97
https://github.com/llvm/llvm-project/pull/158350
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits