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

Jason Molenda jmolenda at apple.com
Tue Aug 12 17:08:33 PDT 2014


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>




More information about the lldb-commits mailing list