Messages in this thread | | | From | Milian Wolff <> | Subject | Re: PEBS level 2/3 breaks dwarf unwinding! [WAS: Re: Broken dwarf unwinding - wrong stack pointer register value?] | Date | Thu, 15 Nov 2018 10:10:13 +0100 |
| |
On Donnerstag, 15. November 2018 03:05:32 CET Travis Downs wrote: > On Wed, Nov 14, 2018 at 8:20 AM Milian Wolff <milian.wolff@kdab.com> wrote: > > 3) I suggest we always keep the first frame and sample IP from the user > > regs, i.e. the accurate PEBS/IBS IP. Then we add the following frames > > from unwinding the ustack with the iregs. > > Does this mean that the displayed unwind will sometimes be > "impossible" to have actually be generated from a consistent execution > of the user program?
Yes, that is exactly what I'm saying.
> For example, the top frame (from PEBS) and second frame (from iregs) > may be inconsistent in that the latter function never calls the first. > At this point it would be good to have an indication at the top frame > is from a different source than the rest of the frames, lest the user > pull is hair out trying to determine how function X seems to call > function Y despite that not being the case in the source.
I agree. I personally like your suggested approach - only add an indication when the IP differs so much that it points to a different function. What do others say to this?
Cheers
-- Milian Wolff | milian.wolff@kdab.com | Senior Software Engineer KDAB (Deutschland) GmbH, a KDAB Group company Tel: +49-30-521325470 KDAB - The Qt, C++ and OpenGL Experts[unhandled content-type:application/pkcs7-signature] | |