Sindbad~EG File Manager
callgraph.stp - Simple Callgraph Tracing
Print a timed per-thread microsecond-timed nested callgraph. The
first parameter names the function probe points to trace.
For tracing calls to a single function:
$ stap callgraph.stp 'kernel.function("sys_open")'
0 nscd(23451):->SyS_open
6 nscd(23451):<-SyS_open
0 nscd(23451):->SyS_open
7 nscd(23451):<-SyS_open
0 roxterm(21323):->SyS_open
43 roxterm(21323):<-SyS_open
0 roxterm(21323):->SyS_open
2604 roxterm(21323):<-SyS_open
0 systemd-udevd(637):->SyS_open
268 systemd-udevd(637):<-SyS_open
0 roxterm(21323):->SyS_open
24 roxterm(21323):<-SyS_open
[...]
For tracing all functions in a binary:
$ stap callgraph.stp 'process("/bin/ls").function("*")'
0 ls(4261):->main
6 ls(4261): ->set_program_name
12 ls(4261): <-set_program_name
49 ls(4261): ->atexit
53 ls(4261): <-atexit
62 ls(4261): ->human_options
66 ls(4261): <-human_options
68 ls(4261): ->clone_quoting_options
73 ls(4261): ->xmemdup
77 ls(4261): ->xmalloc
81 ls(4261): <-xmalloc
83 ls(4261): <-xmemdup
84 ls(4261): <-clone_quoting_options
85 ls(4261): ->get_quoting_style
89 ls(4261): <-get_quoting_style
90 ls(4261): ->clone_quoting_options
94 ls(4261): ->xmemdup
98 ls(4261): ->xmalloc
101 ls(4261): <-xmalloc
103 ls(4261): <-xmemdup
104 ls(4261): <-clone_quoting_options
105 ls(4261): ->set_char_quoting
109 ls(4261): <-set_char_quoting
110 ls(4261): ->xmalloc
115 ls(4261): <-xmalloc
117 ls(4261): ->clear_files
121 ls(4261): <-clear_files
122 ls(4261): ->queue_directory
126 ls(4261): ->xmalloc
130 ls(4261): <-xmalloc
131 ls(4261): ->xstrdup
135 ls(4261): ->xmemdup
139 ls(4261): ->xmalloc
143 ls(4261): <-xmalloc
144 ls(4261): <-xmemdup
145 ls(4261): <-xstrdup
146 ls(4261): <-queue_directory
152 ls(4261): ->clear_files
156 ls(4261): <-clear_files
178 ls(4261): ->gobble_file.constprop.49
182 ls(4261): ->xstrdup
186 ls(4261): ->xmemdup
189 ls(4261): ->xmalloc
193 ls(4261): <-xmalloc
194 ls(4261): <-xmemdup
195 ls(4261): <-xstrdup
197 ls(4261): <-gobble_file.constprop.49
198 ls(4261): ->process_signals
202 ls(4261): <-process_signals
[...]
4847 ls(4261): ->print_file_name_and_frills
4851 ls(4261): ->set_normal_color
4854 ls(4261): <-set_normal_color
4855 ls(4261): ->print_name_with_quoting
4863 ls(4261): ->quote_name
4867 ls(4261): ->quotearg_buffer
4870 ls(4261): ->quotearg_buffer_restyled
4874 ls(4261): <-quotearg_buffer_restyled
4875 ls(4261): <-quotearg_buffer
4877 ls(4261): <-quote_name
4878 ls(4261): ->process_signals
4881 ls(4261): <-process_signals
4882 ls(4261): <-print_name_with_quoting
4884 ls(4261): <-print_file_name_and_frills
4885 ls(4261): <-print_current_files
4888 ls(4261): ->close_stdout
4892 ls(4261): ->close_stream
4906 ls(4261): ->rpl_fclose
4910 ls(4261): ->rpl_fflush
4915 ls(4261): <-rpl_fflush
4922 ls(4261): <-rpl_fclose
4923 ls(4261): <-close_stream
4925 ls(4261): ->close_stream
4928 ls(4261): ->rpl_fclose
4932 ls(4261): ->rpl_fflush
4935 ls(4261): <-rpl_fflush
4937 ls(4261): <-rpl_fclose
4939 ls(4261): <-close_stream
4940 ls(4261): <-close_stdout
4943 ls(4261): ->__do_global_dtors_aux
4947 ls(4261): ->deregister_tm_clones
4950 ls(4261): <-deregister_tm_clones
4951 ls(4261): <-__do_global_dtors_aux
4953 ls(4261): ->_fini
4956 ls(4261): <-_fini
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists