jasonmolenda accepted this revision.
jasonmolenda added a comment.
This revision is now accepted and ready to land.
Hi Ravi, sorry for taking so long to get back to you on this. It looks like a
reasonable change - let's give it a try. Sometimes with the unwinder, it can
be hard to foresee
ravitheja added a comment.
Hello, Any updates on this differential ?
http://reviews.llvm.org/D15046
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
ravitheja added a comment.
The reason assembly unwind did not work is because if the ebp register is set
to 0 at that time, so the CFA is not available. In the case of clang the frame
pointer is not set by any function, which is why the formula does not work.
(lldb) image show-unwind -n
jasonmolenda added a comment.
Interesting. The routine is
0xf7fd9d70 <+0>: pushl %ecx
0xf7fd9d71 <+1>: pushl %edx
0xf7fd9d72 <+2>: pushl %ebp
0xf7fd9d73 <+3>: movl %esp, %ebp
0xf7fd9d75 <+5>: sysenter
[...]
0xf7fd9d7e <+14>: int$0x80
--> 0xf7fd9d80 <+16>: popl %ebp
jasonmolenda added a comment.
Just to be clear - the change your proposing may be a good improvement for
falling back to another unwind plan when the initial unwind plan fails. But
I'm curious why the initial unwind plan (assembly) failed here to begin with.
I think lldb should have profiled
ravitheja added a comment.
Hi Jason,
Ok let me explain the scenario here, the application i.e the test function
tries to abort which eventually ends up in a function present in the vdso, on
the way the call flow goes through some functions in libc. Now the backtrace is
done from inside of
jasonmolenda added a comment.
Hi Ravitheja, thanks for putting together a patch, I'm probably the best person
to look at this.
I'm not sure I understand the failure mode. When built with clang, this vdso
routine does not preserve the frame pointer register (rbp), right? If lldb
knows the