Plan 9 from Bell Labs’s /n/sources/contrib/rog/sh-examples/demo/debugger.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 time state nil) := ${split ' ' $i}
		if {~ $state broken} {
			result=$pid $result
		}
	}
}

cmds = (
	show	{result = 'cat tst.b'}
	compile	{result = 'limbo -g tst.b'}
	show	{result = 'ls -l tst.*'}
	run		{result = 'tst'}
	ps		{result = 'ps'}
	stack	{
				pid = ${broken}
				if {! ~ $#pid 1} {
					result = '# wrong number of broken processes'
					pid=''
				} {
					result = 'stack ' ^ $pid
				}
			}
	debug	{result = 'wm/deb -p ' ^ $pid}
	exit		{result=''}
)

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.