Know Your Debugger Part 4: Modifying Your Application During Execution
Join the DZone community and get the full member experience.
Join For FreeIn this installment of "Know your Debugger", I am going to show you one of the lesser known secrets of debugging with Visual Studio. You can actually make changes to objects while execution is broken. I have a simple block of code with a breakpoint set and when hit you can see that the int i is equal to 5.

Notice that I am writing the output to the console twice. I will step past the first time and then while broken on the second Console.WriteLine call I will change the int value to 7. This is done through the same dialog that you use when inspecting objects. You can click into values and actually change them:

Changing 5 to 7:

Now that I have changed the value, I will step through and allow the Console.WriteLine to run producing the following output in the console window:

In addition to being able to do this inline, you can also do it from the Intermediate Window, the Locals and Watch windows:

Now you might be thinking to yourself, this is cool and all but when would I ever actually use this? I find it most useful when I am testing and need to try my code with different values without having to stop execution, make a change to a value and restart. I have found the ability to do this to be invaluable when trying to track down a problem and build a fix.

Notice that I am writing the output to the console twice. I will step past the first time and then while broken on the second Console.WriteLine call I will change the int value to 7. This is done through the same dialog that you use when inspecting objects. You can click into values and actually change them:

Changing 5 to 7:

Now that I have changed the value, I will step through and allow the Console.WriteLine to run producing the following output in the console window:

In addition to being able to do this inline, you can also do it from the Intermediate Window, the Locals and Watch windows:

Now you might be thinking to yourself, this is cool and all but when would I ever actually use this? I find it most useful when I am testing and need to try my code with different values without having to stop execution, make a change to a value and restart. I have found the ability to do this to be invaluable when trying to track down a problem and build a fix.
Execution (computing)
application
Opinions expressed by DZone contributors are their own.
Comments