[Lldb-commits] [PATCH] Register Number in DWARFCallFrameInfo.cpp

Jason Molenda jmolenda at apple.com
Tue Aug 12 16:36:13 PDT 2014


Hm, one second here.

First, I don't see why you're swapping the DWARF register numbers in the patch.  It seems like we're only talking about the eh_frame numbers.

Second, what does the output of objdump -W include?  Are you sure you're not looking at the debug_frame output, as opposed to eh_frame output?

J


> On Aug 12, 2014, at 4:32 PM, Tong Shen <endlessroad at google.com> wrote:
> 
> Got it. So much magic going on there.
> 
> +Todd Can you check this in? Thanks!
> 
> 
> On Tue, Aug 12, 2014 at 4:23 PM, Jason Molenda <jmolenda at apple.com> wrote:
> 
> > On Aug 12, 2014, at 4:20 PM, Tong Shen <endlessroad at google.com> wrote:
> >
> > There's this line in your dwarfdump output:
> > DW_CFA_def_cfa (5 (esp), 4)
> > DW_CFA_offset (8 (eip), -4)
> >
> > On Ubuntu 14.04, objdump -W outputs this:
> > DW_CFA_def_cfa: r4 (esp) ofs 4
> > DW_CFA_offset: r8 (eip) at cfa-4
> >
> > I believe this is the cause. On OSX, esp=5; on linux, esp=4
> 
> 
> Yeah, I was starting to get that impression too.  I thought the old esp/ebp mixup was across all the gcc platforms - but who knows.  Feel free to fix the RegisterContext_x86 enum definitions for esp/ebp - on Mac OS X we'll still be using the debugserver-provided register definitions.  (and we don't use eh_frame very often on Mac OS X - we primarily use a local compact unwind format that I haven't written an importer for yet)
> 
> Normally this kind of thing would be defined in the processor ABI document -- but I've never been able to find a document like that for IA-32.
> 
> 
> 
> -- 
> Best Regards, Tong Shen
> <1.patch>




More information about the lldb-commits mailing list