[Lldb-commits] [PATCH] dwarf fix for 0-length CIE.

Virgile Bello virgile.bello at gmail.com
Fri Aug 23 10:08:41 PDT 2013


Had to apply this patch so that DWARF works properly on executables generated by GCC on Windows (for CIE/FDE, data after the length should not be read if length is 0).

I suppose this should also apply on other platforms?

http://llvm-reviews.chandlerc.com/D1487

Files:
  source/Symbol/DWARFCallFrameInfo.cpp

Index: source/Symbol/DWARFCallFrameInfo.cpp
===================================================================
--- source/Symbol/DWARFCallFrameInfo.cpp
+++ source/Symbol/DWARFCallFrameInfo.cpp
@@ -341,7 +341,7 @@
         dw_offset_t next_entry = current_entry + len + 4;
         dw_offset_t cie_id = m_cfi_data.GetU32 (&offset);
 
-        if (cie_id == 0 || cie_id == UINT32_MAX)
+        if (cie_id == 0 || cie_id == UINT32_MAX || len == 0)
         {
             m_cie_map[current_entry] = ParseCIE (current_entry);
             offset = next_entry;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D1487.1.patch
Type: text/x-patch
Size: 557 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20130823/f2845b58/attachment.bin>


More information about the lldb-commits mailing list