- They make you run an application and inspect variables while you a running the real thing
- They make you debug code and quickly find bugs
You set a breakpoint somewhere, you run your application, it stops where you want and let you inspect variables and more.
Debuggers are bad
- They make you debug code instead of writing unit tests
- They make you debug code instead of writing proper log statements
Conclusion: Debuggers are good when you search for bugs and not as a development practice
Log statements are there forever and let you for instance trace code in a production environment where a debugger is usually not available.
Unit tests are there forever and let you run the same tests that you run in your debugger on and on.
Again: Debuggers are useful but don't abuse them.