Hello HN,<p>I'd like to showcase a new feature in my Visual Studio extension, which allows for seeing what is ahead in program execution while stepping through C++ code. Each line that will be executed in the future is highlighted and alongside each line, the extension shows an expandable call tree, with every function that's about to be called on that line visible. You can then analyse what gets called and step into any function invocation if you wish. This makes it much easier to step through without fearing you might overstep somewhere you didn't want to, or intentionally skip stepping, because you already see what will be the result before stepping there. It's also easier to step through release mode code, since you'll be seeing the lines which will really be hit by the debugger. This has many more uses e.g. checking early returns, comparing how many functions are ran between code versions, predicting future exceptions etc.<p>Internally, the extension utilities an x64 emulator to emulate the code from the current cursor and records all address hits and function calls. When a syscall such as opening a file is hit that cannot be emulated, the emulator stops and waits until the user steps through it, and re-emulates again. It's quite interesting to me that this kind of functionality is not available in any debugger, since it provides a lot of clarity while stepping when you know what will be happening ahead of time.<p>You can try the feature out by installing the D0 extension from the VS marketplace, which also features live profiling functionality: <a href="https://marketplace.visualstudio.com/items?itemName=donadigo.d0" rel="nofollow">https://marketplace.visualstudio.com/items?itemName=donadigo...</a><p>You can see more features of the extension on the website: <a href="https://d-0.dev" rel="nofollow">https://d-0.dev</a>