FTS 1.0 Release Notes ===================== Overview: --------- The Functional Testing Suite (FTS) is a do-everything utility for monitoring and controlling VMS systems. The philosophy here is that everytime I want to do something under VMS, and there's no command to do it, I'll write it myself and add it to FTS. It started out as a monitor for images which I didn't have source code for (like UCX applications) and grew into a sort of grab-bag of hacks. FTS (Functionality Testing Suite, aka Futz) is a utility program which provides services not offered by the standard VMS distribution. The only file required is FTS.EXE which should be installed as a foreign command (ie. "$ FTS :== $disk:[dir]FTS.EXE"). WARNING!!! FTS is an rather brutish program which may very well do nasty things to your system, least of all crash it. Don't use this program unless you think you know what you're doing! Comments and additions are cheerfully accepted: Bruce R. Miller TGV, Inc. 603 Mission St. Santa Cruz, CA 95060 (403) 427-4366 Internet: MILLER@TGV.COM New and Changed Features: ------------------------- ALONONPAGED [/size=n] Allocate some nonpaged pool. If no size given, 512 is assumed. A 12-byte system header including allocated size is presumed. DEANONPAGED S0addr [/size=n] Deallocate some nonpaged pool. If no size explicitely given, The size in the system header is used. CRASH [/PID=pid] Crash the system. The /PID qualifier specifies the ID of the process to blame, but is not currently implemented. The command crashes the system by placing a -1 in the PC. HALT Execute a HALT instruction in KRNL mode. Sometimes quicker than reaching back behind the machine for the HALT button. DEPOSIT location value [/PID=pid] Write a value to a location in memory. Runs in kernel mode but does a kmode PROBER/W first. /PID option not implemented, yet. EXAMINE location [/PID=pid] Fetch a value from memory. Fetches from kernel mode but executes a PROBER instruction first. /PID option not implemented, yet. EXIT/QUIT/^Z Leave the FTS utility. FORCEX [pid] [/rcode=x] Forces image exit of a given process with the given status. SS$_NORMAL assumed if /RCODE not specified. HELP Currently prints a simple help message. Needs to be improved. Can't use standard VMS help facility since that would require another file and I want to limit things to FTS.EXE. LOAD JASMON Installs the JASMON code in P1 space and takes over the P1 system service vector. Jasmon resides in P1 space and comtinues to operate across image activations. Use WATCH to monitor service, UNWATCH to stop monitoring them, and UNLOAD JASMON to restore the process to normal. WATCH SS service Intercepts calls to a particular system service. For example, "WATCH SS TRNLNM" monitors logical name translation. WATCH SS QIO[W] device [/STYLE=NULL|DEFAULT|TGV|UCX] Intercepts $QIO[W]s to a particular device (ie. DK: or INET:). The /STYLE switch controls the formatting of P1 though P6. WATCH RMS service Intercepts calls to a particular RMS service. For example, "WATCH SS OPEN" monitors RMS file opens. UNWATCH SS service Disable monitoring of a system service and restore P1 dispatch vector. UNWATCH RMS service Disable monitoring of an RMS service and restore P1 dispatch vector. UNLOAD JASMON Uninstalls the JASMON code from P1 space and restores the P1 system service vector to it's previous state. Currently supported system services: ASSIGN,CANCEL,CANEXH,CANTIM,CANWAK,CHKPRO,CRETVA,DASSGN,DEQ, ENQ,ENQW,GETLKI,GETLKIW,LKWSET?,QIO,QIOW,SETIME,SETPRT,TRNLNM Currently supported RMS services: CLOSE,CONNECT,CREATE,DELETE,FLUSH,GET,OPEN,PUT LOAD XDT Install XDelta and invoke it. Works even if system was not booted with XDelta. Caution: XDelta will cause LAVC nodes to crash with CLUEXIT run for more than 20 seconds. You can use the EXAMINE and DEPOSIT commands to modify memory in a cluster. NOOP Does nothing. Doesn't even execute a NOOP command. SET PAGE addr [size] /PROTECTION=prot {[/PID] [/REFCOUNT]} Modify a memory page in some way. /PROT sets the page protection bits in the PTE to the value specified by the given string (eg. "URKW"). /PID and /REFCOUNT not yet implemented. Size only used for process pages. SHOW DEFAULT [pid] Print the Default Directory string for the given process SHOW ERROR hex_code Print the text of an error signal. SHOW ETHER List protocols assigned to the EtherNet card. Not Yet Implemented. SPAWN [command-line] Spawn a CLI process and optionall execute a command. Currently broken, but not interesting enough to fix. VERSION Display information about this FTS version, including authors. WAKE [pid] Wakes up a given process. WATCH DEVICE device [/FDT] [/START] [/ALTSTART] [/CANCEL] [/IOPOST] Monitors the given device by patching it's DDT. Interactive utility; type any key to exit. /FDT prints calls passing through the Function Decision Table. /START intercepts the device's StartIO routine. /ALTSTART intercepts the device's alternate StartIO routine. /CANCEL monitors device request cancellations. /IOPOST plugs the IOC$IOPOST interrupt vector and watches it for completion of requests for this device. Type any key to exit the monitor. Take care in monitoring disk and terminal devices with this comand. Note: A conditional assembly in a second version of JASMON here allows the $setprv service to appear to always indicate a privileged envrionment. This is done to allow one to set up a mousetrap for checking code for covert behavior by making it believe it is running in a fully privileged environment (when hopefully it is not). The VMS SET WATCH command should be used in such a situation as well to monitor RMS operations, to tell what files are being accessed (or attempted).