elvish/pkg/eval/builtin_fn_debug.d.elv

70 lines
1.4 KiB
Plaintext
Raw Normal View History

#elvdoc:fn src
#
# ```elvish
# src
# ```
#
# Output a map-like value describing the current source being evaluated. The value
# contains the following fields:
#
# - `name`, a unique name of the current source. If the source originates from a
# file, it is the full path of the file.
#
# - `code`, the full body of the current source.
#
# - `is-file`, whether the source originates from a file.
#
# Examples:
#
# ```elvish-transcript
# ~> put (src)[name code is-file]
# ▶ '[tty]'
# ▶ 'put (src)[name code is-file]'
# ▶ $false
# ~> echo 'put (src)[name code is-file]' > show-src.elv
# ~> elvish show-src.elv
# ▶ /home/elf/show-src.elv
# ▶ "put (src)[name code is-file]\n"
# ▶ $true
# ```
#
# Note: this builtin always returns information of the source of the function
# calling `src`. Consider the following example:
#
# ```elvish-transcript
# ~> echo 'fn show { put (src)[name] }' > ~/.elvish/lib/src-fsutil.elv
# ~> use src-util
# ~> src-util:show
# ▶ /home/elf/.elvish/lib/src-fsutil.elv
# ```
#elvdoc:fn -gc
#
# ```elvish
# -gc
# ```
#
# Force the Go garbage collector to run.
#
# This is only useful for debug purposes.
#elvdoc:fn -stack
#
# ```elvish
# -stack
# ```
#
# Print a stack trace.
#
# This is only useful for debug purposes.
#elvdoc:fn -log
#
# ```elvish
# -log $filename
# ```
#
# Direct internal debug logs to the named file.
#
# This is only useful for debug purposes.