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

Todd Fiala tfiala at google.com
Tue Aug 12 17:52:51 PDT 2014


Hah ok I see I misread the comment check-in as the fix.

So - I am going to test and check in this:

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,

(from Jason).

Jason - when we get MacOSX on lldb-gdbserver, we’ll just need to make sure
we don’t undo this fix for *APPLE* code. Is there anything else we might
want to do about this now while we’re thinking about it for migration
purposes? (Like - we could #ifdef it now correctly for *APPLE* and have it
default to the linux style just to be safe?)

-Todd
​


On Tue, Aug 12, 2014 at 5:41 PM, Todd Fiala <tfiala at google.com> wrote:

> Ok - see you already did it.  Thanks!
>
>
> On Tue, Aug 12, 2014 at 5:41 PM, Todd Fiala <tfiala at google.com> wrote:
>
>> Ok - so Jason, your patch is fine to submit?
>>
>>
>> On Tue, Aug 12, 2014 at 5:22 PM, Tong Shen <endlessroad at google.com>
>> wrote:
>>
>>> 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
>>>
>>
>>
>>
>> --
>>  Todd Fiala | Software Engineer |  tfiala at google.com |  650-943-3180
>>
>
>
>
> --
> Todd Fiala | Software Engineer |  tfiala at google.com |  650-943-3180
>



-- 
Todd Fiala | Software Engineer | tfiala at google.com | 650-943-3180
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20140812/c392de3f/attachment.html>


More information about the lldb-commits mailing list