para-callgraph.stp - Callgraph Tracing with Arguments Print a timed per-thread microsecond-timed callgraph, complete with function parameters and return values. The first parameter names the function probe points to trace. The optional second parameter names the probe points for trigger functions, which acts to enable tracing for only those functions that occur while the current thread is nested within the trigger. $ stap para-callgraph.stp 'process("/bin/ls").function("*")' \ 'process("/bin/ls").function("main")' -c "/bin/ls > /dev/null" 0 ls(24779):->main argc=0x1 argv=0x7ffe16646868 4 ls(24779): ->set_program_name argv0=0x7ffe166486e6 8 ls(24779): <-set_program_name 33 ls(24779): ->atexit 35 ls(24779): <-atexit 42 ls(24779): ->human_options spec=0x0 opts=0x61d100 block_size=0x61d0f8 44 ls(24779): <-human_options return=0x0 46 ls(24779): ->clone_quoting_options o=0x0 49 ls(24779): ->xmemdup p=0x61d2e0 s=0x38 51 ls(24779): ->xmalloc n=0x38 54 ls(24779): <-xmalloc return=0x1a15050 57 ls(24779): <-xmemdup return=0x1a15050 58 ls(24779): <-clone_quoting_options return=0x1a15050 60 ls(24779): ->get_quoting_style o=0x1a15050 62 ls(24779): <-get_quoting_style return=0x0 63 ls(24779): ->clone_quoting_options o=0x0 65 ls(24779): ->xmemdup p=0x61d2e0 s=0x38 66 ls(24779): ->xmalloc n=0x38 68 ls(24779): <-xmalloc return=0x1a15090 69 ls(24779): <-xmemdup return=0x1a15090 70 ls(24779): <-clone_quoting_options return=0x1a15090 72 ls(24779): ->set_char_quoting o=0x1a15090 c=0x3a i=0x1 74 ls(24779): <-set_char_quoting return=0x0 76 ls(24779): ->xmalloc n=0x4b00 79 ls(24779): <-xmalloc return=0x1a150d0 80 ls(24779): ->clear_files 82 ls(24779): <-clear_files 84 ls(24779): ->queue_directory name=0x414546 realname=0x0 command_line_arg=0x1 86 ls(24779): ->xmalloc n=0x20 88 ls(24779): <-xmalloc return=0x1a19be0 89 ls(24779): ->xstrdup string=0x414546 92 ls(24779): ->xmemdup p=0x414546 s=0x2 93 ls(24779): ->xmalloc n=0x2 95 ls(24779): <-xmalloc return=0x1a19c10 96 ls(24779): <-xmemdup return=0x1a19c10 97 ls(24779): <-xstrdup return=0x1a19c10 98 ls(24779): <-queue_directory 104 ls(24779): ->clear_files 106 ls(24779): <-clear_files 1183 ls(24779): ->process_signals 1186 ls(24779): <-process_signals [...] 5294 ls(24779): ->print_file_name_and_frills f=0x1a15fd0 start_col=0x0 5296 ls(24779): ->set_normal_color 5298 ls(24779): <-set_normal_color 5299 ls(24779): ->print_name_with_quoting f=0x1a15fd0 symlink_target=0x0 stack=0x0 start_col=0x0 5301 ls(24779): ->quote_name out=0x2b8871d2c620 name=0x1a21ef0 options=0x1a15050 width=0x0 5304 ls(24779): ->quotearg_buffer buffer=0x7ffe16644000 buffersize=0x2000 arg=0x1a21ef0 argsize=0xffffffffffffffff o=0x1a15050 5308 ls(24779): ->quotearg_buffer_restyled buffer=0x7ffe16644000 buffersize=0x2000 arg=0x1a21ef0 argsize=0xffffffffffffffff quoting_style=0x0 flags=0x0 quote_these_too=0x1a15058 left_quote=0x0 right_quote=0x0 5310 ls(24779): <-quotearg_buffer_restyled return=0xe 5311 ls(24779): <-quotearg_buffer return=0xe 5312 ls(24779): <-quote_name return=0xe 5313 ls(24779): ->process_signals 5315 ls(24779): <-process_signals 5316 ls(24779): <-print_name_with_quoting return=0xe 5317 ls(24779): <-print_file_name_and_frills return=0xe 5318 ls(24779): <-print_current_files 5321 ls(24779): ->close_stdout 5323 ls(24779): ->close_stream stream=0x2b8871d2c620 5326 ls(24779): ->rpl_fclose fp=0x2b8871d2c620 5329 ls(24779): ->rpl_fflush stream=0x2b8871d2c620 5332 ls(24779): <-rpl_fflush return=0x0 5341 ls(24779): <-rpl_fclose return=0x0 5342 ls(24779): <-close_stream return=0x0 5343 ls(24779): ->close_stream stream=0x2b8871d2c540 5345 ls(24779): ->rpl_fclose fp=0x2b8871d2c540 5347 ls(24779): ->rpl_fflush stream=0x2b8871d2c540 5349 ls(24779): <-rpl_fflush return=0x0 5350 ls(24779): <-rpl_fclose return=0x0 5352 ls(24779): <-close_stream return=0x0 5353 ls(24779): <-close_stdout 5355 ls(24779): ->__do_global_dtors_aux 5357 ls(24779): ->deregister_tm_clones 5359 ls(24779): <-deregister_tm_clones 5360 ls(24779): <-__do_global_dtors_aux 5362 ls(24779): ->_fini 5363 ls(24779): <-_fini