# Lines starting with "[zxdb]" are interpreted as input commands.
[zxdb] attach cobalt.cm

# The following lines match against some output from the previous command.
Attached Process
# Many lines can be matched against a single input line.
Done.

# Comments are supported.
[zxdb] pause
# So are UTF-8 characters.
🛑

# Output the backtraces of all threads of the current process.
[zxdb] thread * frame

# Commands work just like they do on the command line.
# So the above is identical to this:
# [zxdb] t * f

# ?? Is a wildcard pattern, which can match arbitrary sections of a line (up to
# the entire line) if you're not sure what to match against.

# The end of the script file will drop you into the zxdb command line. If you
# want to exit instead, you can use the following line to bypass user
# interaction completely. Be careful that you match some output against the
# previous command.
# [zxdb] quit --force
