A debugger is a computer program that lets you run your program, line by line and examine the values of variables
or look at values passed into functions
and let you figure out why it isn't running the way you expected it to.
Compilers can be configured to produce debug information when you compile your program. This information is used by the debugger so you can view the source code as you debug, not the machine code.
Once the bug was reported, I ran my program through the debugger and found out where it went wrong.