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 __kernel_vsyscall UNWIND PLANS for [vdso]`__kernel_vsyscall (start addr 0xf7fd9d70) Asynchronous (not restricted to call-sites) UnwindPlan is 'assembly insn profiling' Synchronous (restricted to call-sites) UnwindPlan is 'eh_frame CFI' Assembly language inspection UnwindPlan: This UnwindPlan originally sourced from assembly insn profiling This UnwindPlan is sourced from the compiler: no. This UnwindPlan is valid at all instruction locations: yes. Address range of this UnwindPlan: [[vdso]..text + 1600-0x00000654) row[0]: 0: CFA=esp +4 => esp=CFA+0 eip=[CFA-4] row[1]: 1: CFA=esp +8 => esp=CFA+0 eip=[CFA-4] row[2]: 2: CFA=esp+12 => esp=CFA+0 eip=[CFA-4] row[3]: 3: CFA=esp+16 => ebp=[CFA-16] esp=CFA+0 eip=[CFA-4] row[4]: 5: CFA=ebp+16 => ebp=[CFA-16] esp=CFA+0 eip=[CFA-4] row[5]: 17: CFA=esp+12 => esp=CFA+0 eip=[CFA-4] row[6]: 18: CFA=esp +8 => esp=CFA+0 eip=[CFA-4] row[7]: 19: CFA=esp +4 => esp=CFA+0 eip=[CFA-4] eh_frame UnwindPlan: This UnwindPlan originally sourced from eh_frame CFI This UnwindPlan is sourced from the compiler: yes. This UnwindPlan is valid at all instruction locations: no. Address range of this UnwindPlan: [[vdso]..text + 1600-0x00000654) row[0]: 0: CFA=esp +4 => eip=[CFA-4] row[1]: 1: CFA=esp +8 => eip=[CFA-4] row[2]: 2: CFA=esp+12 => eip=[CFA-4] row[3]: 3: CFA=esp+16 => ebp=[CFA-16] eip=[CFA-4] row[4]: 17: CFA=esp+12 => ebp=[CFA-16] eip=[CFA-4] row[5]: 18: CFA=esp +8 => ebp=[CFA-16] eip=[CFA-4] row[6]: 19: CFA=esp +4 => ebp=[CFA-16] eip=[CFA-4] Arch default UnwindPlan: This UnwindPlan originally sourced from i386 default unwind plan This UnwindPlan is sourced from the compiler: no. This UnwindPlan is valid at all instruction locations: no. row[0]: 0: CFA=ebp +8 => esp=CFA+0 ebp=[CFA-8] eip=[CFA-4] Arch default at entry point UnwindPlan: This UnwindPlan originally sourced from i386 at-func-entry default This UnwindPlan is sourced from the compiler: no. This UnwindPlan is valid at all instruction locations: not specified. row[0]: 0: CFA=esp +4 => esp=CFA+0 eip=[CFA-4] http://reviews.llvm.org/D15046 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits