← Back to context

Comment by SAI_Peregrinus

1 year ago

Yep. Debuggers are more powerful, they can do everything `printf` debugging can do + more, but take more work to set up. For interpreted languages, they often take more work to use than just adding a print statement & rerunning, for compiled languages the reverse is more likely.

There are cases where printf helps but debugging doesn't. Multithreaded code is one of such cases.

  • Conditional breakpoints that run a script and continue can be used equivalently to printf debugging, just set it to print when the selected line is hit. You can do this without restarting the application, even for multithreaded code.

    Also watchpoints, for the equivalent but at a memory location instead of a code line.

    Debugger != breakpoints.