diff options
| -rw-r--r-- | lldb/source/Plugins/Process/Utility/RegisterContext_x86.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/lldb/source/Plugins/Process/Utility/RegisterContext_x86.h b/lldb/source/Plugins/Process/Utility/RegisterContext_x86.h index b471a6a603a..6b3f6fb43e3 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContext_x86.h +++ b/lldb/source/Plugins/Process/Utility/RegisterContext_x86.h @@ -34,8 +34,16 @@ enum gcc_ecx_i386, gcc_edx_i386, gcc_ebx_i386, - gcc_ebp_i386, // Warning: these are switched from dwarf values - gcc_esp_i386, // + + // on Darwin esp & ebp are reversed in the eh_frame section for i386 (versus dwarf's reg numbering). + // To be specific: + // i386+darwin eh_frame: 4 is ebp, 5 is esp + // i386+everyone else eh_frame: 4 is esp, 5 is ebp + // i386 dwarf: 4 is esp, 5 is ebp + // lldb will get the darwin-specific eh_frame reg numberings from debugserver instead of here so we + // only encode the 4 == esp, 5 == ebp numbers in this generic header. + gcc_esp_i386, + gcc_ebp_i386, gcc_esi_i386, gcc_edi_i386, gcc_eip_i386, |

