Debugger simply runs programs and gives users control of the programs while it’s running and allows you to examine variables. Most popular debugger for Unix is GNU debugger and it helps you run programs up to a certain point and examine it. You can basically reverse engineer a buggy application and troubleshoot it.
You can start your program and specify anything that might affect the behavior, you can make your program stop on conditions you specify and examine what happened when your program stops, and you can change stuff in your program and experiment with GNU debugger.