A debugger is a software tool that allows you to examine programs while they are running. You can watch the flow of the program and the values of the variables it contains. You can even alter the flow and change the variables to get the most from the debugging session - but not as a way of fixing bugs!