How Linux C++ Debuggers Really Work

Undo Bytes
Time Travel Debugging
3 min readJul 19, 2021


Title: How Linux C++ Debuggers Really Work

Debugging is central to programming. You cannot be a good programmer without being good at debugging and vice-versa. And I would also say you cannot be good at debugging without taking advantage of the tools at your disposal. We don’t need to use all the tools, but there are certain times when specific tools come in really useful.

Try Time Travel Debugging in VS Code

Knowing your tools makes you a better programmer, but becoming (too) reliant on them for your debugging can lead you down a garden path and actually take you away from the correct answer.

When coding, we’ve got a model of what the program should be doing and the boundaries where expected behaviors diverge. The tools give us a model too. For example, when I’m stepping through my code in GDB, I have this kind of conceptual model of what’s going on underneath. 90% of the time, I don’t need to worry about what happens. I just accept the model that GDB gives me. But sometimes, things do happen (or do not happen) that can leave you astray if you don’t understand what’s really going on with the tools you’re using.

This is why I think my talk with Dewang Li from Synopsys is fundamental. We explored some of the Linux C++ debugging tools available to us today and what’s really going on underneath these tools.

Dewang and I looked at two categories of debugging tools — debuggers and checkers.

1. Debuggers

2. Checkers

Do watch the full talk here, and don’t forget to subscribe, like, and share!

Good luck debugging!

Try UDB Time Travel Debugging in VS Code

Join our UDB VS Code beta evaluation and get UDB Time Travel Debugger for free. Click to sign up & find out more.

Join our VS Code Time Travel Beta
UDB’s VS Code Beta is available now!

If you prefer command-line, UDB is available as a 30 day trial so take it for a test drive and check it out. We’d love to hear about your experiences with Time Travel Debugging.

Originally published at



Undo Bytes
Time Travel Debugging

Undo is the time travel debugging company for Linux. We equip developers with the technology to understand complex code and fix bugs faster.