Summary
Add the ability to save/snapshot/freeze values in the watch window to compare them between program states. This should be easy to implement and could improve debugging a lot.
Reasoning
Sometimes we deal with huge third-party classes, and observing value changes between program states can be the fastest way to understand what is going on. Simple highlighting of changed values is not enough, because a class can have literally hundreds of moving values inside, and you need to find the one or two that actually correspond to the changes you made to the program's state.
What I propose
Add a "snapshot" button to the watch window that will create an additional column, saving the currently displayed values. With it, the user will be able to change the program state and observe the changes not just by noticing that a value changed, but also by seeing the character of that change (old vs. new value side by side).
As far as I know, no mainstream debugger has this exact feature. A snapshot/freeze feature would still be extremely useful for understanding third-party code — especially when stepping through it in a debugger is simpler than digging through thousands of lines of highly templated, interface-heavy C++ OOP code.
And for raddbg this should be a really easy-to-implement feature.
Possible next steps
- Saving frozen values between sessions is not necessary for this feature to work, but would be a possible improvement.
- The
memory() view rule in the watch window can be dumped into a file, since it has not only a start pointer, but also a fixed size parameter.
- Saving multiple snapshots could be useful too, though it's not a deal breaker — just another possible improvement.
These are absolutely unnecessary, just something that other people might find lacking in a bare-bones implementation. But I want to emphasize that even the most basic implementation of this feature would be a game changer for exploratory debugging.
Summary
Add the ability to save/snapshot/freeze values in the watch window to compare them between program states. This should be easy to implement and could improve debugging a lot.
Reasoning
Sometimes we deal with huge third-party classes, and observing value changes between program states can be the fastest way to understand what is going on. Simple highlighting of changed values is not enough, because a class can have literally hundreds of moving values inside, and you need to find the one or two that actually correspond to the changes you made to the program's state.
What I propose
Add a "snapshot" button to the watch window that will create an additional column, saving the currently displayed values. With it, the user will be able to change the program state and observe the changes not just by noticing that a value changed, but also by seeing the character of that change (old vs. new value side by side).
As far as I know, no mainstream debugger has this exact feature. A snapshot/freeze feature would still be extremely useful for understanding third-party code — especially when stepping through it in a debugger is simpler than digging through thousands of lines of highly templated, interface-heavy C++ OOP code.
And for raddbg this should be a really easy-to-implement feature.
Possible next steps
memory()view rule in the watch window can be dumped into a file, since it has not only a start pointer, but also a fixed size parameter.These are absolutely unnecessary, just something that other people might find lacking in a bare-bones implementation. But I want to emphasize that even the most basic implementation of this feature would be a game changer for exploratory debugging.