Простым способом улучшить трассировочную информацию является следующий фрагмент кода:
PS4='[${BASH_SOURCE[0]:-inherited}:${LINENO}:${FUNCNAME[0]:-main}] '
set -o xtrace
Это покажет Вам:
см. также страницу Wiki для c42-common-functions
Выходной пример:
$ c42_loglevel_trace
$ pidkill --help
++ '[' '+ ' == '+ ' ']'
++ PS4='[${BASH_SOURCE[0]:-inherited}:${LINENO}:${FUNCNAME[0]:-main}] '
...
[/usr/local/bin/pidkill:224:main] '[' 1 -eq 0 ']'
[/usr/local/bin/pidkill:230:main] signal=KILL
[/usr/local/bin/pidkill:231:main] '[' 1 -gt 0 ']'
[/usr/local/bin/pidkill:233:main] case $1 in
[/usr/local/bin/pidkill:268:main] shift 1
[/usr/local/bin/pidkill:269:main] help
[/usr/local/bin/pidkill:57:help] cat
pidkill <-h|--help> this help
[/usr/local/bin/pidkill:70:help] copyLeft
[/usr/local/bin/pidkill:13:copyLeft] echo ''
...
Альтернатива является bashdb:
Это - полное, переписывают отладчика Shell Korn от 'Приобретения знаний Bill Rosenblatt Shell Korn', опубликованный O'Reilly and Associates (ISBN 1-56592-054-6) с изменениями Michael Loukides и Cigy Cyriac. Однако этот код теперь зависит в ряде отладки функций поддержки, которые не являются ни частью стандарта POSIX, ни существующий, находятся во многих подобных POSIX оболочках. Хотя можно просто использовать bashdb для отладки сценариев, записанных в Bash, он может также использоваться в качестве фронтенда для получения дополнительной информации о программировании в Bash. Как дополнительная помощь, отладчик может использоваться в контексте существующего сценария с его функциями и переменными, которые были уже инициализированы; с фрагментами существующего кода можно провести эксперименты путем изменения их в отладчике.
Это зависит вполне немного от точного ядра (точный используемый механизм изменился и мог бы даже зависеть от конфигурации), и (очевидно) от точного процессора. Все, что может быть сказано с некоторой уверенностью, - то, что разработчики ядра прилагают все усилия для создания этого максимально быстро (в конце концов, это - что-то, что миллионы систем делают десятки времен в секунду).