The code i sent u and poor man's profiler r similar. But i had tried with poor man's profile ... Same results ... no change
libunwind is not working if the code uses frame pointer for someother purpose .......
Usage: ./get_stacktrace <pid>
address@hidden knielsen-pmp]# ./get_stacktrace 4229
Thread: 4229
ip = 7a0424 <>+0
ip = 8048a77 <>+0
ip = 126cc6 <>+0
ip = 8048771 <>+0
Thread: 4230
ip = 7a0424 <>+0
Thread: 4231
ip = 7a0424 <>+0
ip = 80488ab <>+0
ip = 7c7919 <>+0
ip = 1ecd4e <>+0
Thread: 4232
ip = 7a0424 <>+0
ip = 80488ab <>+0
ip = 7c7919 <>+0
ip = 1ecd4e <>+0
address@hidden knielsen-pmp]# pstack 4229
Thread 4 (Thread 0xb7846b70 (LWP 4230)):
#0 0x007a0424 in __kernel_vsyscall ()
#1 0x007cb22c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2 0x08048923 in watch_count ()
#3 0x007c7919 in start_thread () from /lib/libpthread.so.0
#4 0x001ecd4e in clone () from /lib/libc.so.6
Thread 3 (Thread 0xb6e45b70 (LWP 4231)):
#0 0x007a0424 in __kernel_vsyscall ()
#1 0x001acea6 in nanosleep () from /lib/libc.so.6
#2 0x001accd0 in sleep () from /lib/libc.so.6
#3 0x080488ab in inc_count ()
#4 0x007c7919 in start_thread () from /lib/libpthread.so.0
#5 0x001ecd4e in clone () from /lib/libc.so.6
Thread 2 (Thread 0xb6444b70 (LWP 4232)):
#0 0x007a0424 in __kernel_vsyscall ()
#1 0x001acea6 in nanosleep () from /lib/libc.so.6
#2 0x001accd0 in sleep () from /lib/libc.so.6
#3 0x080488ab in inc_count ()
#4 0x007c7919 in start_thread () from /lib/libpthread.so.0
#5 0x001ecd4e in clone () from /lib/libc.so.6
Thread 1 (Thread 0xb78476c0 (LWP 4229)):
#0 0x007a0424 in __kernel_vsyscall ()
#1 0x007c7fdd in pthread_join () from /lib/libpthread.so.0
#2 0x08048a77 in main ()
address@hidden knielsen-pmp]#
On Wed, Feb 22, 2012 at 10:56 AM, Arun Sharma
<address@hidden> wrote:
On Tue, Feb 21, 2012 at 9:28 AM, Sasikanth <
address@hidden> wrote:
> Hi,
>
> I spent lot of time on debugging the code. am not sure about the
> libunwind internals .. but libunwind failed on to extract frame information
> from pthreads lib api (example pthread_cond_wait in this function the frame
> pointer is getting changed to some value like 0x1). Libunwind works with the
> examples provided by u .......
Before I try to reproduce your problem, have you tested the poor
man's profiler written using libunwind?
https://github.com/knielsen/knielsen-pmp
http://poormansprofiler.org/
May be it already does what you need?
-Arun