upvote
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