Today, we’re happy to announce that time travel debugging can now be part of your Visual Studio Code (VS Code) workflow via the Time Travel Debug for C/C++ extension.
Time Travel Debug for C/C++ places superior time travel debugging capabilities at the fingertips of developers using VS Code. By enabling developers to time travel forward and backward through code execution flow it:
- provides full visibility into the state of code at any point in its execution.
- makes it much easier to understand complex code.
- accelerates root cause analysis and identification.
- speeds up bug fixing.
By debugging this way, programmers can conduct effective root-cause analysis (without needing to predict ahead of time what to log), and avoid disruptive redeployments.
Here’s a summary of the key feature capabilities added to VS Code:
- Time travel debugging (aka reverse debugging)
- Navigate backward and forward through code execution
Reverse Step In/Out/Over joins the familiar Step In/Out/Over
- Launch, Attach, or Replay a LiveRecorder recording
- Continue and Reverse Continue, stopping at Breakpoints / Conditional Breakpoints / Watchpoints
- Inspect global and local variable values at any point in your program’s execution history
- Timeline - visually navigate and zoom through the execution flow
- Bookmarks - set bookmarks at any point in your program’s execution history. These appear on the timeline and can be easily jumped to
- Undo your last navigation action
- Evaluate expressions and call functions in the Debug Console at any point in your program’s execution history
Why Visual Studio Code?
Visual Studio Code is the most popular code editor from Microsoft for C++ development.
[Source: The State of Developer Ecosystem 2021 - JetBrains]
Making VS Code better for developers
Microsoft’s IDE provides a rich development environment, including debugging capabilities such as variable inspection, stepping into code, and displaying the call stack. The great thing about VS Code is that it is highly extensible. With this integration we’ve taken advantage of that extensibility, and by adding time travel debugging superpowers, we’ve made it substantially quicker and easier to understand complex code bases and the conditions that led to a specific error.
Try it out for yourself
Give it a try and let us know what you think!