107 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
#
 | 
						|
# Commands useful for debugging the Scheme48 VM.
 | 
						|
#
 | 
						|
 | 
						|
#Set a breakpoint at label "raise".
 | 
						|
#Obtain the proper line number using "egrep -n raise: scheme48vm.c".
 | 
						|
#break scheme48vm.c:4831
 | 
						|
 | 
						|
#display/i $pc
 | 
						|
 | 
						|
define scsh
 | 
						|
run -o ./scshvm -i ./scsh/scsh.image
 | 
						|
end
 | 
						|
#
 | 
						|
document scsh
 | 
						|
For testing scsh -bri
 | 
						|
end
 | 
						|
 | 
						|
define pcont
 | 
						|
echo template id = \ 
 | 
						|
output *(long *)((*(long *)(($ & ~3) + 8) & ~3) + 4) / 4
 | 
						|
echo \npc = \ 
 | 
						|
output (*(long *)(($ & ~3) + 4) / 4)
 | 
						|
echo \nparent = \ 
 | 
						|
output *(long *)($ & ~3)
 | 
						|
echo \nenv = \ 
 | 
						|
output *(long *)(($ & ~3) + 12)
 | 
						|
echo \ncount = \ 
 | 
						|
output *(long *)(($ & ~3) - 4) >> 10
 | 
						|
echo \n
 | 
						|
end
 | 
						|
#
 | 
						|
document pcont
 | 
						|
Print $ as a continuation.
 | 
						|
end
 | 
						|
 | 
						|
 | 
						|
define parent
 | 
						|
print *(long *)($ & ~3)
 | 
						|
pcont
 | 
						|
end
 | 
						|
#
 | 
						|
document parent
 | 
						|
Select parent continuation.
 | 
						|
end
 | 
						|
 | 
						|
 | 
						|
define preview
 | 
						|
set $cont = ScontS
 | 
						|
preview-loop
 | 
						|
end
 | 
						|
#
 | 
						|
define preview-loop
 | 
						|
output $cont
 | 
						|
echo \040
 | 
						|
output *(long *)((*(long *)(($cont & ~3) + 8) & ~3) + 4) / 4
 | 
						|
echo \n
 | 
						|
set $cont = *(long *)($cont & ~3)
 | 
						|
preview-loop
 | 
						|
end
 | 
						|
#
 | 
						|
document preview
 | 
						|
Display Scheme stack trace.  Look up the template uids in the .debug file.
 | 
						|
end
 | 
						|
 | 
						|
 | 
						|
define show-header
 | 
						|
echo Header length:\ 
 | 
						|
output $hdr >> 8
 | 
						|
echo \ type:\040
 | 
						|
output ($hdr & 127) >> 2
 | 
						|
echo \ tag:\040
 | 
						|
output $hdr & 3
 | 
						|
echo \n
 | 
						|
end
 | 
						|
 | 
						|
define look
 | 
						|
output ($ - Snewspace_beginS)
 | 
						|
echo :\n
 | 
						|
set $hdr = *(long *)($ - 7)
 | 
						|
show-header
 | 
						|
output *(long *)($ - 3)
 | 
						|
echo \n
 | 
						|
output *(long *)($ + 1)
 | 
						|
echo \n
 | 
						|
output *(long *)($ + 5)
 | 
						|
echo \n
 | 
						|
end
 | 
						|
 | 
						|
define go0
 | 
						|
print *(long *)($ - 3)
 | 
						|
end
 | 
						|
 | 
						|
define bytes
 | 
						|
set $foo = RScode_pointerS
 | 
						|
output (int)*(unsigned char *)($foo + 0)
 | 
						|
echo \040
 | 
						|
output (int)*(unsigned char *)($foo + 1)
 | 
						|
echo \040
 | 
						|
output (int)*(unsigned char *)($foo + 2)
 | 
						|
echo \040
 | 
						|
output (int)*(unsigned char *)($foo + 3)
 | 
						|
echo \040
 | 
						|
output (int)*(unsigned char *)($foo + 4)
 | 
						|
echo \n
 | 
						|
end
 |