[lldb-dev] eh_frame or debug_frame

Greg Clayton gclayton at apple.com
Fri Oct 10 13:20:08 PDT 2014


> On Oct 10, 2014, at 1:05 PM, Philippe Lavoie <philippe.lavoie at octasic.com> wrote:
> 
> Hi,
> 
> I noticed that by default lldb does not read .debug_frame section to unwind frames but relies instead on .eh_frame .
> 
> Is there a way to fallback to reading .debug_frame?

Not currently. Most compilers (gcc _and_ clang) put the same old stuff in .debug_frame as they do in .eh_frame, so we haven't had to use .debug_frame over .eh_frame yet. What compiler are using that is putting different (more complete) info in .debug_frame vs .eh_frame?

> 
> I tried getting DWARFCallFrameInfo to read a .debug_frame section, but it fails interpreting the CIE_id field. It assumes that it is a CIE Pointer.

There is a boolean you have to set to true or false in the contractor:


    DWARFCallFrameInfo (ObjectFile& objfile, 
                        lldb::SectionSP& section, 
                        lldb::RegisterKind reg_kind, 
                        bool is_eh_frame);

Set "is_eh_frame" to false if you are using DWARF and the errors below will disappear.

> error: unable to find CIE at 0x00000014 for cie_id = 0x000000c8 for entry at 0x000000d8.
> error: unable to find CIE at 0x0000004c for cie_id = 0x000000c8 for entry at 0x00000110.
> error: unable to find CIE at 0x00000068 for cie_id = 0x000000c8 for entry at 0x0000012c.
> 
> Thanks,
> -Philippe
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev




More information about the lldb-dev mailing list