15bf5ca77SDevin Teske# -*- tab-width: 4 -*- ;; Emacs 25bf5ca77SDevin Teske# vi: set filetype=sh tabstop=8 shiftwidth=8 noexpandtab :: Vi/ViM 35bf5ca77SDevin Teske############################################################ IDENT(1) 45bf5ca77SDevin Teske# 55bf5ca77SDevin Teske# $Title: dwatch(8) module for syscall errno logging $ 65bf5ca77SDevin Teske# $Copyright: 2014-2018 Devin Teske. All rights reserved. $ 75bf5ca77SDevin Teske# 85bf5ca77SDevin Teske############################################################ DESCRIPTION 95bf5ca77SDevin Teske# 105bf5ca77SDevin Teske# Print when syscall returns with non-zero errno (default) or other condition. 115bf5ca77SDevin Teske# To override the default test condition, use (for example) `-t errno==2' to 125bf5ca77SDevin Teske# test for specific value or simply `-t 1' to unconditionally show all values. 135bf5ca77SDevin Teske# 145bf5ca77SDevin Teske############################################################ PROBE 155bf5ca77SDevin Teske 165bf5ca77SDevin Teske: ${PROBE:=syscall:::return} 175bf5ca77SDevin Teske 185bf5ca77SDevin Teske############################################################ EVENT ACTION 195bf5ca77SDevin Teske 205bf5ca77SDevin Teske[ "$CUSTOM_TEST" ] || EVENT_TEST="errno > 0" 215bf5ca77SDevin Teske 225bf5ca77SDevin Teske############################################################ EVENT DETAILS 235bf5ca77SDevin Teske 24*a061d970SDevin Teskeif [ ! "$CUSTOM_DETAILS" ]; then 255bf5ca77SDevin Teskeexec 9<<EOF 265bf5ca77SDevin Teske /* 275bf5ca77SDevin Teske * Print errno details 285bf5ca77SDevin Teske */ 295bf5ca77SDevin Teske printf("%s: %s (%i)", probefunc, strerror[errno], errno); 305bf5ca77SDevin TeskeEOF 315bf5ca77SDevin TeskeEVENT_DETAILS=$( cat <&9 ) 32*a061d970SDevin Teskefi 335bf5ca77SDevin Teske 345bf5ca77SDevin Teske################################################################################ 355bf5ca77SDevin Teske# END 365bf5ca77SDevin Teske################################################################################ 37