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

Tong Shen endlessroad at google.com
Tue Aug 12 17:22:23 PDT 2014


Sorry just saw this.. Agree.


On Tue, Aug 12, 2014 at 5:08 PM, Jason Molenda <jmolenda at apple.com> wrote:

> I believe the correct patch looks closer to
>
> Index: RegisterContext_x86.h
> ===================================================================
> --- RegisterContext_x86.h       (revision 215178)
> +++ RegisterContext_x86.h       (working copy)
> @@ -34,8 +34,8 @@
>      gcc_ecx_i386,
>      gcc_edx_i386,
>      gcc_ebx_i386,
> -    gcc_ebp_i386, // Warning: these are switched from dwarf values
> -    gcc_esp_i386, //
> +    gcc_esp_i386,  // on Darwin esp & ebp are reversed in the eh_frame
> section for i386.
> +    gcc_ebp_i386,  // lldb will get those darwin-specific reg mappings
> from debugserver instead of here.
>      gcc_esi_i386,
>      gcc_edi_i386,
>      gcc_eip_i386,
>
>
>
> > On Aug 12, 2014, at 5:05 PM, Todd Fiala <tfiala at google.com> wrote:
> >
> > Yep, will do later tonight.
> >
> > -Todd
> >
> > 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>
>
>


-- 
Best Regards, Tong Shen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20140812/d95b7c34/attachment.html>


More information about the lldb-commits mailing list