[PATCH] D38680: [libunwind] Fix handling of DW_CFA_GNU_args_size
    Martin Storsjö via Phabricator via cfe-commits 
    cfe-commits at lists.llvm.org
       
    Mon Oct  9 14:24:13 PDT 2017
    
    
  
mstorsjo added a comment.
In https://reviews.llvm.org/D38680#892487, @compnerd wrote:
> I think that the problem is that we are using the generic register name, but we need to use the target specific register name.  On x86, EIP/ESP are swapped.
You mean EBP/ESP? I think the code here does the right thing, with `UNW_REG_SP` always mapping to the actual ESP.
> We should also have a test case for this.  I had reduced this down to a simpler test case of:
> 
>   void f(int,int,int,int,int,int,int,int,int);
>    
>   int main() {
>     try {
>       f(0,1,2,3,4,5,6,7,8);
>     } catch (int) {
>       return 0;
>     }
>     return 1;
>   }
>    
Oh, great if you can reproduce the issue with that! Feel free to try to dig into the issue and figure out a better fix then.
https://reviews.llvm.org/D38680
    
    
More information about the cfe-commits
mailing list