1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
set test "caller"
if {! [installtest_p]} { untested "$test"; return }
set test_script {
global caller_str
probe begin {
printf("systemtap starting probe\n")
}
probe kernel.function("vfs_write") {
caller_str = caller()
exit()
}
probe end {
printf("systemtap ending probe\n")
printf("%s\n", caller_str)
}
}
# We expect that the caller of vfs_write() will be sys_write(). This
# works on most systems, except for ppc64 (3.10.0-327.el7.ppc64),
# where vfs_write() can get inlined. So, we expect system_call() or
# vfs_write() on ppc64.
if {[string match ppc* $::tcl_platform(machine)]} {
set output {([Ss]y[Ss]_write|system_call) 0x[0-9a-f]+\r\n}
} else {
set output {[Ss]y[Ss]_write 0x[0-9a-f]+\r\n}
}
stap_run $test no_load $output -e $test_script -c "echo hi > /dev/null"
|