I recently ran into a very interesting bug at work. We were seeing very strange behaviour of some rather trivial code that would fail to mutate an objects field. I ended up stepping through the code with GDB and found some very interesting behaviour related to heap memory and object lifetime. It was so interesting to me that I had to make a video about it to explain!
A lesson in object lifetime in C++ - with a free intro to GDB!