Maxima/Debugging

Directories
Start Maxima and type the command:

maxima_userdir;

this will tell you the directory that is being used as your user directory.

infolists

 * is a system variable
 * Default value: []
 * is a list of the names of all of the information lists in Maxima. These are
 * labels : All bound %i, %o, and %t labels.
 * values : All bound atoms which are user variables, not Maxima options or switches, created by : or :: or functional binding.
 * functions : All user-defined functions, created by := or define.
 * arrays : All declared and undeclared arrays, created by :, ::, or :=.
 * macros : All user-defined macro functions, created by ::=.
 * myoptions : All options ever reset by the user (whether or not they are later reset to their default values).
 * rules : All user-defined pattern matching and simplification rules, created by tellsimp, tellsimpafter, defmatch, or defrule.
 * aliases : All atoms which have a user-defined alias, created by the alias, ordergreat, orderless functions or by declaring the atom as a noun with declare.
 * dependencies : All atoms which have functional dependencies, created by the depends, dependencies, or gradef functions.
 * gradefs : All functions which have user-defined derivatives, created by the gradef function.
 * props : All atoms which have any property other than those mentioned above, such as properties established by atvalue or matchdeclare, etc., as well as properties established in the declare function.
 * let_rule_packages : All user-defined let rule packages plus the special package default_let_rule_package. (default_let_rule_package is the name of the rule package used when one is not explicitly set by the user.)

reset
reset : resets many (global) system variables

Use:

reset

example output :

(%o1) [_, __, load_pathname, labels, %, linenum, ratprint, tr-unique, lispdisp, multiplicities]

trace
In Maxima : :lisp (setf *debugger-hook* nil)

manual debugging
print partial results using :
 * print
 * playback

values
values:
 * is a system variable
 * is a list ... which contains the names of currently assigned scalar values which have been set by:
 * the user interactively
 * by packages which have been loaded"
 * initial value is []

dependencies
dependencies :
 * is a system variable
 * is the list of atoms which have functional dependencies, assigned by:
 * depends
 * the function dependencies
 * gradef

status
status (feature);

example output: (%o34) [sb-bsd-sockets-addrinfo, cl, mk-defsystem, cltl2, 64-bit, 64-bit-registers, alien-callbacks, ansi-cl, ash-right-vops, c-stack-is-control-stack, common-lisp, compare-and-swap-vops, complex-float-vops, cycle-counter, elf, float-eql-vops, fp-and-pc-standard-save, gencgc, ieee-floating-point, inline-constants, integer-eql-vop, interleaved-raw-slots, largefile, linkage-table, linux, little-endian, memory-barrier-vops, multiply-high-vops, os-provides-blksize-t, os-provides-dladdr, os-provides-dlopen, os-provides-getprotoby-r, os-provides-poll, os-provides-putwc, os-provides-suseconds-t, package-local-nicknames, precise-arg-count-error, raw-instance-init-vops, sb-after-xc-core, sb-core-compression, sb-doc, sb-eval, sb-futex, sb-ldb, sb-package-locks, sb-simd-pack, sb-source-locations, sb-test, sb-thread, sb-unicode, sb-xref-for-internals, sbcl, stack-allocatable-closures, stack-allocatable-fixed-objects, stack-allocatable-lists, stack-allocatable-vectors, stack-grows-downward-not-upward, symbol-info-vops, unix, unwind-to-frame-and-call-vop, x86-64]