When a spy is invoked, record the arguments it was invoked with and then execute (call through to) the original function/command.
This will only ever work with a shell that supports something like declare -f or typeset -f, so dash and posh support is a no-go.