There are various ways to trace execution of programs written in various languages: || Tracing type || Tool || Command-line || || ELF (syscalls) || DebianPackage:strace || `strace program args` || || ELF (functions) || DebianPackage:ltrace || `ltrace program args` || || ELF (functions) || DebianPackage:latrace || `latrace program args` || || getenv(3) calls || [[https://github.com/jwilk/getenvy|getenvy]] || `export LD_PRELOAD="libgetenvy.so" ; GETENVY=1 program args` || || Shell || all shells || `sh -x /usr/bin/program args` || || Perl || DebianPackage:libdevel-trace-perl || `perl -d:Trace /usr/bin/program args` || || Ruby || DebianPackage:ruby-rbtrace || `rbtrace --exec /usr/bin/program args` || || Python || [[https://docs.python.org/3/library/trace.html|Python trace module]] || `python3 -m trace --trace /usr/bin/program args` || ---- CategoryDebugging