Plan 9 from Bell Labs’s /n/sources/contrib/rog/sh-examples/demo/remotedebug.demo/demo

Copyright © 2009 Alcatel-Lucent.
Distributed under the Lucent Public License version 1.02.
Download the Plan 9 distribution.


subfn broken {
	for i in ${split $nl "{ps}} {
		(pid gid uid state nil) := ${split ' ' $i}
		if {~ $state broken} {
			result=$pid $result
		}
	}
}
sysname = "{cat /dev/sysname}
cmds = (
	ps		{result = 'ps'}
	mount	{result = ${quote mount tcp!^$sysname /n/remote}}
	bind		{result = 'bind /n/remote/prog /prog'}
	ps		{result = 'ps'}
	stack	{
				pid = ${broken}
				if {! ~ $#pid 1} {
					result = ${join ' ' '# need one broken; found' $pid}
					pid=''
				} {
					result = 'stack ' ^ $pid
				}
			}
	debug	{result = 'wm/deb -p ' ^ $pid}
	exit		{unmount /n/remote/prog /prog; result=''}
)
executor={sh -in}
dodemo $cmds

# could use a generator
# function that returns a function to evaluate
# the next step in the demo.
# e.g.
#
#cmd = ${vbind {
#	(label rcmd cmds) := $cmds
#	cmd = ${vbind $0 cmds}
#	buttons=($label $rcmd)
#} cmds}

(This is a user-contributed directory and
should not be interpreted as statement by Alcatel-Lucent.)

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2009 Alcatel-Lucent. All Rights Reserved.
Comments to webmaster@plan9.bell-labs.com.