Try increase "ustackframes", I think the default is 20 and you won't see the 
real entry point when ustack is too deep.

________________________________
From: [email protected] 
[mailto:[email protected]] On Behalf Of Qihua Wu
Sent: 2009年5月4日 9:59
To: [email protected]
Subject: [dtrace-discuss] output of ustack only shows the library call but no 
program call which called the library

After I run dtrace -n 'syscall::brk:entry {ustack()}', I found some output show 
the function from ONLY library. But libaray is not runnable by itself.


0  59753                        brk:entry
              libc.so.1`_brk_unlocked+0xa
              libc.so.1`sbrk+0x20
              libc.so.1`_morecore+0x12b
              libc.so.1`_malloc_unlocked+0x10d
              libc.so.1`malloc+0x2d
              libproc.so.1`optimize_symtab+0x6c
              libproc.so.1`Pbuild_file_symtab+0x787
              libproc.so.1`build_map_symtab+0x36
              libproc.so.1`Pxlookup_by_name+0x6d
              libproc.so.1`Plookup_by_name+0x1c
              libproc.so.1`ps_pglobal_lookup+0x1a
              librtld_db.so.1`_rd_reset64+0x10f
              librtld_db.so.1`rd_reset+0x58
              librtld_db.so.1`rd_new+0x6d
              libproc.so.1`Prd_agent+0x4f
              libproc.so.1`Pxlookup_by_addr+0x55
              libproc.so.1`Plookup_by_addr+0xc
              libdtrace.so.1`dt_print_ustack+0x16b
              libdtrace.so.1`dt_consume_cpu+0x3ae
              libdtrace.so.1`dt_consume_begin+0x92                       ===> 
The library is not runnable by itself, why the function comes from library?

  0  59753                        brk:entry
              libc.so.1`_brk_unlocked+0xa
              libc.so.1`sbrk+0x20
              libc.so.1`_morecore+0x27
              libc.so.1`_malloc_unlocked+0x10d
              libc.so.1`malloc+0x2d
              libproc.so.1`optimize_symtab+0x6c
              libproc.so.1`Pbuild_file_symtab+0x787
              libproc.so.1`build_map_symtab+0x36
              libproc.so.1`Pxlookup_by_addr+0x70
              libproc.so.1`Plookup_by_addr+0xc
              libdtrace.so.1`dt_print_ustack+0x16b
              libdtrace.so.1`dt_consume_cpu+0x3ae
              libdtrace.so.1`dt_consume_begin+0x92
              libdtrace.so.1`dtrace_consume+0x114
              libdtrace.so.1`dtrace_work+0xaa
              dtrace`main+0x902
              dtrace`_start+0x6c                                                
 ==> This one is better to understand:  dtrace is a process calling some 
library, so it makes sense to have the "dtrace`_start+0x6c" as the outer most 
function.
_______________________________________________
dtrace-discuss mailing list
[email protected]

Reply via email to