|
From: | Scott Biersdorff |
Subject: | [Libunwind-devel] Unwinding from optimzied shared library on linux |
Date: | Thu, 4 Sep 2014 00:12:50 +0000 |
Hi, I am attempting to unwind from an optimized shared (non-stripped) library compiled with debugging information. However I cannot unwind pass the second entry on the call stack. Ideally I would like to unwind all the way back to main and
I understand libunwind has techniques it uses when and if the frame pointers/dwarf information is unavailable and I want to make sure that I’m using libunwind in such a way that gives it is the best possibility to use these techniques. Here are some details: Linux x86_64 Libunwind version 1.1 Library name: libsatlas.so Leaf Symobol name: ATL_spKBmm (after this location unw_step() returns 0) Actual stack (from gdb): #0 0x00007ffff7851e00 in ATL_spKBmm () from /usr/local/atlas/lib/libsatlas.so #1 0x00007ffff7917830 in ATL_smmJIK2 () from /usr/local/atlas/lib/libsatlas.so #2 0x00007ffff79187ad in ATL_smmJIK () from /usr/local/atlas/lib/libsatlas.so #3 0x00007ffff790fb7b in ATL_sgemm () from /usr/local/atlas/lib/libsatlas.so #4 0x00007ffff769a831 in atl_f77wrap_sgemm_ () from /usr/local/atlas/lib/libsatlas.so #5 0x00007ffff7699a64 in sgemm_ () from /usr/local/atlas/lib/libsatlas.so #6 0x00000000004008e5 in fa () at sgemm_port.f90:39 #7 0x000000000040091d in MAIN__ () at sgemm_port.f90:59 I’ve also attached debugging information from libunwind. This is the information printed at the last attempt to unwind: >_Ux86_64_step: (cursor=0x7fff8ec56d10, ip=0x00007f321ed00a1d, cfa=0x00007fff8ec57728) >_Ux86_64_step: [RBP=0x7fff8ec571f8] = 0x4620 (cfa = 0x7fff8ec57728) -> 0x0 >_Ux86_64_step: NULL %rbp loc, returning 0 Thanks for any insight. -
Scott |
libunwind-debug.txt
Description: libunwind-debug.txt
[Prev in Thread] | Current Thread | [Next in Thread] |