[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Libunwind-devel] use_prev_instr breaking unwind - how to stop it?

From: Doug Moore
Subject: Re: [Libunwind-devel] use_prev_instr breaking unwind - how to stop it?
Date: Thu, 30 Mar 2017 17:18:16 -0500

A colleague looked at the crash and explained it this way:

> I looked at what happens when you use 
>> unw_set_reg(cursor, UNW_REG_IP, pc+1);
> This not only sets pc + 1 in the cursor, it also sets it to +1 in the unwind 
> context, which is why things go to hell. Thus, I believe that the right fix 
> is to patch unw_init_local for x86_64 so that it doesn’t subtract one by 
> calling common_init(…, 1). 


> On Mar 30, 2017, at 4:04 PM, Dave Watson <address@hidden> wrote:
> On 03/30/17 12:00 PM, Doug Moore wrote:
>> Documentation has to change anyway, since the unw_init_local docs are
>> currently broken.
>> Decrementing the ip for my case (using unw_set_reg) gets me through a few
>> unw_step calls successfully, then crashes the program.
> Do you know why this crashes?  I would have thought incrementing the
> IP was the same as setting use_prev_instr=0.
>> So, instead, I’ve attached a patch to add unw_local_init_signal to
>> the API, to solve my problem. Please consider it.
> Thanks Doug
> !DSPAM:10223,58dd730939341735888377!

reply via email to

[Prev in Thread] Current Thread [Next in Thread]