blob: acc4cf352af7b3be24e615a4aeb31c45253c6170 (
plain) (
blame)
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# -*- tab-width: 4 -*- ;; Emacs
# vi: set filetype=sh tabstop=8 shiftwidth=8 noexpandtab :: Vi/ViM
############################################################ IDENT(1)
#
# $Title: dwatch(8) module for nanosleep(2) [or similar] entry $
# $Copyright: 2014-2018 Devin Teske. All rights reserved. $
# $FreeBSD$
#
############################################################ DESCRIPTION
#
# Print arguments being passed to nanosleep(2) [or similar]
#
############################################################ PROBE
: ${PROBE:=syscall::$PROFILE:entry}
############################################################ ACTIONS
exec 9<<EOF
this struct timespec * rqtp;
this time_t requested_sec;
this long requested_nsec;
$PROBE /* probe ID $ID */
{${TRACE:+
print("<$ID>");
}
/*
* const struct timespec *
*/
this->rqtp = (struct timespec *)copyin(arg0, sizeof(struct timespec));
this->requested_sec = (time_t)this->rqtp->tv_sec;
this->requested_nsec = (long)this->rqtp->tv_nsec;
}
EOF
ACTIONS=$( cat <&9 )
ID=$(( $ID + 1 ))
############################################################ EVENT DETAILS
if [ ! "$CUSTOM_DETAILS" ]; then
exec 9<<EOF
/*
* Dump nanosleep(2) arguments
*/
printf("%d.%d seconds",
this->requested_sec, this->requested_nsec / 100000);
EOF
EVENT_DETAILS=$( cat <&9 )
fi
################################################################################
# END
################################################################################
|