Hi Ravitheja, thanks for the logging output.  It does look like the assembly 
profiling is failing for some reason, and with your patch we fall back to using 
the eh_frame instructions and it succeeds.  I'll look at the patch closely 
tomorrow (I meant to do it tonight but I'm running out of time before I need to 
head home) - but I'm just curious what lldb will report for

(lldb) image show-unwind -n __kernel_vsyscall

when you have the process running.  Looking at the assembly instructions, it 
seems like the assembly language profile inspection should have done the right 
thing here.  The rule "CFA=ebp+16 => ebp=[CFA-16] esp=CFA+0 eip=[CFA-4]" looks 
right to me at this point in the function.

Thanks!

Jason


> On Dec 1, 2015, at 2:06 AM, Ravitheja Addepally 
> <ravitheja.addepa...@intel.com> wrote:
> 
> ravitheja added a comment.
> 
> 
> Here is the log without my patch -
> 
> 
> th1/fr0 with pc value of 0xf7fd9d80, symbol name is '__kernel_vsyscall'
> (i386) [vdso](0x00000000f7fd9000): Reading EH frame info
> th1/fr0 0x00000000f7fd9d75: CFA=ebp+16 => ebp=[CFA-16] esp=CFA+0 eip=[CFA-4]
> 
> th1/fr0 Got an invalid CFA register value - reg ebp (6), value 0x0
> th1/fr0 could not read CFA register for this frame.
> th1 Unwind of this thread is complete.
> Process 99000 stopped
> 
> 
> 
> After the patch ->
> 
> 
> th1/fr0 with pc value of 0xf7fd9d80, symbol name is '__kernel_vsyscall'
> (i386) [vdso](0x00000000f7fd9000): Reading EH frame info
> th1/fr0 0x00000000f7fd9d75: CFA=ebp+16 => ebp=[CFA-16] esp=CFA+0 eip=[CFA-4]
> 
> th1/fr0 Got an invalid CFA register value - reg ebp (6), value 0x0
> th1/fr0 supplying caller's saved eip (8)'s location using assembly insn 
> profiling UnwindPlan
> th1/fr0 supplying caller's register eip (8) from the stack, saved at CFA plus 
> offset -4 [saved at 0xfffffffffffffffb]
> th1/fr0 CFA is 0xffffd2d4: Register esp (7) contents are 0xffffd2c4, offset 
> is 16
> th1/fr0 requested caller's saved PC but this UnwindPlan uses a RA reg; 
> getting eip (8) instead
> th1/fr0 supplying caller's saved eip (8)'s location using eh_frame CFI 
> UnwindPlan
> th1/fr0 supplying caller's register eip (8) from the stack, saved at CFA plus 
> offset -4 [saved at 0xffffd2d0]
> th1/fr0 trying to unwind from this function with the UnwindPlan 'eh_frame 
> CFI' because UnwindPlan 'assembly insn profiling' failed.
> th1/fr0 initialized frame current pc is 0xf7fd9d80 cfa is 0xffffd2d4 using 
> eh_frame CFI UnwindPlan
> th1/fr0 supplying caller's saved eip (8)'s location, cached
> th1/fr1 pc = 0xf7e40607
> th1/fr0 supplying caller's saved ebp (6)'s location using eh_frame CFI 
> UnwindPlan
> th1/fr0 supplying caller's register ebp (6) from the stack, saved at CFA plus 
> offset -16 [saved at 0xffffd2c4]
> th1/fr1 fp = 0x0
> th1/fr0 supplying caller's stack pointer esp (7) value, computed from CFA
> th1/fr1 sp = 0xffffd2d4
> th1/fr1 with pc value of 0xf7e40607, symbol name is 'gsignal'



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to