Probing

Tracing can be accomplished by probing the state of execution. Execution can be watched (or recorded) by printing the location of execution and the state of instance variables. This is probably how you currently debug your programs.

	for(int i=0; i < array.length; i++){
		System.out.print("At index: "+i+" "+a[i]);
	}

We can probe the state of all objects in the array during execution. This would allow us to determine if values contain the "expected" values. This method of debugging is a valuable skill once you know the location of the bug. Probing does require that a class implements the toString() so that you can meaningfully print the state of an object.