libunwind-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Libunwind-devel] __lll_unlock_wake (__lll_unlock_wait) break the callch


From: Chenggang
Subject: [Libunwind-devel] __lll_unlock_wake (__lll_unlock_wait) break the callchain (with libunwind's upstream version)
Date: Sat, 13 Dec 2014 16:52:51 +0800 (CST)

Hi, all
     __lll_unlock_wake (__lll_unlock_wait) are functions in libc. They use the DW_CFA_val_expression. While I walk the stack that contains these 2 functions, I cannot always get the complete call chain. At some time, it seems correct. However, in most cases, the call chains are broken at these 2 functions.
The patch http://lists.gnu.org/archive/html/libunwind-devel/2014-01/msg00003.html support DW_CFA_val_expression. The libunwind that I used is contains this path. My libunwind's version is upstream. I get it by "git clone".
The libc's version that I tested are glibc-2.5-81 and 2.12-1.25. The OSes are REL5 & REL6. We used these libc & OSes in our systems.
  I put the call chains' graph is in the attachment.
The call chain:
clone->start_thread->counter_thread->__pthread_mutex_unlock_internal->_L_unlock_776->__lll_unlock_wake
are correct ones.
But, clone->start_thread->__lll_unlock_wake
are wrong ones.

Is this problem related to Glibc's version?

Regards
Chenggang


Attachment: mutex.svg
Description: image/svg


reply via email to

[Prev in Thread] Current Thread [Next in Thread]