Lately, I had to debug a C# project on a computer of a colleague and the colleague was not available.
The problem was, I could not debug because the Visual Studio 2005 debugger there did not work right.
The symptoms are:
- Messages like Cannot evaluate expression because the code of the current method is optimized or in german: Der Ausdruck kann nicht ausgewertet werden, da der Code der aktuellen Methode optimiert wurde in the variables windows (auto, local, watch windows).
- Some functions or methods are not entered when trying to step into them via F11.
- At some places, breakpoints can not be set.
- Differences about the point of execution between the source code and the stack window.
- Sometimes, when stepping out of a function, the point of execution that is shown is not what you’d expect.
Every experienced developer knows these symptoms: They ususally do occur when you are trying to debug a program that has not been built in the DEBUG mode. Of course I checked this and rebuilt all. No change. I rechecked it and cleared all manually and rebuilt again – just in case. No change.
I got some grey hair …. and after some time I found out that there are two different types of debug mode in this version of VS. One called pdb-only and one called full. Switching the debug mode to full solved all the problems. Here is how to do it:
- Go to the build tab of the project.
- Make sure that DEBUG configuration is selected.
- At the bottom of the tab, there is a button Advanced or Erweitert. Press the button.
- In the upcoming dialog, select full instead of pdb only
- Rebuild all.
- Happiness 🙂