Я использую очень простой обходной путь, который может быть полезен, если вы хотите отладить только определенную функцию, хотя ту же идею можно применить для полной трассировки с помощьюset -x
:
Когда мне нужно отладить определенную функцию, скажем myfunc
, я открываю дочернюю оболочку с помощью TRACE_FUNC=myfunc zsh -l 2> debug.err.txt
, в то время как я установил в своем ~/.zshrc
что-то вроде:
if [ -n "${TRACE_FUNC}" ]; then
functions -t "$TRACE_FUNC"
fi
Вы можете применить ту же идею, вставив в свой ~/.zshrc
следующее:
if [ -n "${TRACE_ZSH}" ]; then
set -x
fi
И создайте дочернюю оболочку с помощью TRACE_ZSH=1 zsh -l 2> debug.err.txt
.