TELERAID Interlisp-D has facilities for looking at sysout files and machines across the network. This is a rudimentary documentation of how to do it. TELERAID loads the files READSYS, RDSYS, REMOTEVMEM and VMEM. The procedure rests on the notion of a "remote" virtual memory. points the package at a remote virtual memory, and then one can execute various functions which work in the remote space rather than normal space. The "remote" versions of functions normally begin with "V". In this document, the term 'debugger' is used to denote the system that is doing the looking, while 'debuggee' is the system you are looking at. (TELERAID HOST RAIDIX) will put you into an interactive 'Raid' debugger. This is a replacement for the 'Raid' system that runs in BCPL on 1100s and 1132s. You use it for looking at another host on the ethernet/internet. You call TELERAID on the debugger machine. The other machine (the debuggee) must be in TeleRaid mode. You get into this by typing R to Raid on 1100s and 1132s. You get into Teleraid on 1108s by pressing the "Undo" key when the machine is halted at a maintenance panel halt (MP code other than 1108, 1109). The cursor changes to "TeleRaid" when the machine is a TeleRaid-debuggee. HOST is either a host name or a pup address, e.g., (TELERAID '3#23#). If you don't know the pup address, you can often find it out by typing control-P on the debuggee: control-P changes the maintenance panel to show the Decimal pup host number. If the debugger is on the same physical Ethernet, (TELERAID puphostnumber) will work. Otherwise, you have to convert the pup host number to octal and concatinate it with the network number, as in (TELERAID 'net#host#). Inside Teleraid debugger, there are a number of low level debugging commands: U show remote screen: this will show you what's on the debuggee's screen L shows the stack of the debuggee. control-L shows the stack starting at a given stack address -- if followed by a 'small number' < 14, it will give you the stack of the corresponding 'hard' context. K default is for L and control-L to chase CLinks. K toggles an internal switch to cause it to chase ALinks instead. After giving one of these commands, you can look at individual frames: F will print out that frame line-feed (= Same) will show the 'next' frame up ^ will show the previous frame ^F and ^X take stack relative addresses in the default radix and print out the corresponding frame W will 'walk' thru the entire system stack showing the stack frame type D show the definition for an atom A show the value of an atom P show the property list of an atom C print out the code definition for an atom V given a 'hiloc' 'loloc' pair, will interpret it as a pointer. If "n" is an atom number, V 0 n will print out its name. B given a 'hiloc', 'loloc', 'count', print the contents of memory control-Y will put you into a Lisp executive under Teleraid. For those interested in microsurgery, you can actually patch the remote system, by using "_". ========== ============== Actually, teleraid is implemented in two parts: READSYS, which 'reads' a remote system, and VRAID. You can look at a sysout or LISP.VIRTUALMEM by performing (READSYS filename writable) and then (VRAID RAIDIX). (E.g., you can poke around at the VMEM on one partition from another by doing (READSYS '{DSK1}LISP.VIRTUALMEM). (Don't try this on your OWN Lisp.virtualmem!). You can also call directly some of the VRAID functions: (VGETVAL variable) returns the value of "variable" in the remote environment (VGETPROPLIST atom) returns atom's property list (VGETDEFN atom) returns the definition of "atom" in the remote environment You can sometimes use the above info to recover lost work in an otherwise smashed system, e.g., by looking at the FILE element of the VGETPROPLIST of the files on VGETVAL(FILELST) and also VGETVAL(CHANGEDFNSLST) find out what functions have been edited, and then getting their definitions via VGETDEFN or VGETPROPLIST. Not for those with weak stomachs. (VBROKENDEF fn) cause RAID calls to be inserted into FN, i.e., FN will subsequently go into RAID before returning. This is only useful for very very low-level debugging. In general, TELERAID is not a facility for the casual user. System implementors use it when running into really deep problems with the lisp enviornment. There are a number of other internal functions, and a lot more could be added. (If you have any specific suggestions on how to improve this facility, we'd like to hear about it.) Ê HELVETICA Êz¸