upvote
For 3, printf debugging is often faster for me because it only requires an incremental rebuild. Whereas with gdb, it is very likely that the release build doesn't show me what I want to see, so I need to do a full debug build from scratch which takes much longer, and sometimes no longer replicates the bug.
reply
That hints that you might be doing one of three things wrong. Either:

* You're using to doing things the Windows way, where debug and release are completely different profiles rather than orthogonal flags. Or,

* You're compiling using Clang, which gives up and limits debuggability to simple backtraces when optimization is on. Or,

* Your project is hopelessly bloated and linking with debuginfo is slow, but you haven't figured out external debuginfo.

With GCC, `-g -O2` is a reasonable thing to use for all builds and provides a pretty good debugging experience with only minor competence required to find equivalences for any <optimized out>s.

reply