80 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # gdb scripts for dumping resizeable arrays.
 | |
| #
 | |
| # Unfortunately, there does not seem to be a way to do this without
 | |
| # cutting and pasting for every type.
 | |
| 
 | |
| define plainarray
 | |
|     set $n = $arg0.num
 | |
|     set $i = 0
 | |
|     printf "%u items\n", $n
 | |
|     while ($i < $n)
 | |
| 	print $arg0.v[$i]
 | |
| 	set $i++
 | |
|     end
 | |
| end
 | |
| document plainarray
 | |
| Print a plain (untyped) resizeable array.
 | |
| Usage: plainarray myarray
 | |
| end
 | |
| 
 | |
| define array
 | |
|     set $n = $arg0.arr.num
 | |
|     set $i = 0
 | |
|     printf "%u items\n", $n
 | |
|     while ($i < $n)
 | |
| 	print $arg0.arr.v[$i]
 | |
| 	set $i++
 | |
|     end
 | |
| end
 | |
| document array
 | |
| Print the pointers in a typed resizeable array.
 | |
| (Use plainarray for an untyped resizeable array.)
 | |
| Usage: array allcpus
 | |
| end
 | |
| 
 | |
| define cpuarray
 | |
|     set $n = $arg0.arr.num
 | |
|     set $i = 0
 | |
|     printf "%u cpus\n", $n
 | |
|     while ($i < $n)
 | |
| 	printf "cpu %u:\n", $i
 | |
| 	print *(struct cpu *)($arg0.arr.v[$i])
 | |
| 	set $i++
 | |
|     end
 | |
| end
 | |
| document cpuarray
 | |
| Print an array of struct cpu.
 | |
| Usage: cpuarray allcpus
 | |
| end
 | |
| 
 | |
| define threadarray
 | |
|     set $n = $arg0.arr.num
 | |
|     set $i = 0
 | |
|     printf "%u threads\n", $n
 | |
|     while ($i < $n)
 | |
| 	printf "thread %u:\n", $i
 | |
| 	print *(struct thread *)($arg0.arr.v[$i])
 | |
| 	set $i++
 | |
|     end
 | |
| end
 | |
| document threadarray
 | |
| Print an array of struct thread.
 | |
| Usage: threadarray curproc->p_threads
 | |
| end
 | |
| 
 | |
| define vnodearray
 | |
|     set $n = $arg0.arr.num
 | |
|     set $i = 0
 | |
|     printf "%u vnodes\n", $n
 | |
|     while ($i < $n)
 | |
| 	printf "vnode %u:\n", $i
 | |
| 	print *(struct vnode *)($arg0.arr.v[$i])
 | |
| 	set $i++
 | |
|     end
 | |
| end
 | |
| document vnodearray
 | |
| Print an array of struct vnode.
 | |
| Usage: vnodearray sfs->sfs_vnodes
 | |
| end
 | |
| 
 |