tags:

views:

693

answers:

5

My C# debugger is not working properly. It skips break points and line of codes sometimes. I have checked the configuration manager. I have even tried adding my projects to new solution files. Can someone please help me?

+3  A: 

Make sure optimizations are disabled (this is the defaut for the Debug configuration, but they are enabled in Release configuration). Compiler optimizations can mess with the debugger...

Thomas Levesque
how can i adjust compiler optimization
If you're using Visual Studio: Right-click on the project in the solution-explorer, then select the "Build" tab. There should be a checkbox there entitled "optimize code." (At least, this applies to VS 2005 and 2008. I don't know about earlier versions).
Odrade
+3  A: 

Are you sure that it compiled correctly? It sounds to me like you're debugging against a previous version, which can happen if the build fails (perhaps a code bug, perhaps the files are readonly).

Marc Gravell
i m compiling individual projects in the solution but still same problem
A: 

This sounds like your source code is out of sync with the PDB files. The easiest solution is to clean the solution (which deletes all your dlls from the bin folder). Recompile, and then try stepping through again.

If it still fails, try closing the solution and deleting the "obj" folders. And then try again.

And also check you are compiling in debug mode - something I've done often ("why isn't it stepping through?!")

Chris S
i have tried it but still same problem
+1  A: 

My debugging checklist:

  • Make sure your attaching to the process using the correct code type - if your process has both unmanaged and managed code then dont rely on "auto" to work for you, explicitly state what sort of code your trying to debug
  • Goto the modules window (Debug -> Windows -> Modules, you may need to enable it in the "Customize..." menu
  • Check to make sure that the assembly your trying to debug has been loaded, and that symbols have been loaded - if they haven't been loaded then right click on that module and select "load symbols"
  • Open your code file and place your breakpoint - if it appears with the little warning symbol then look and see what it says,
  • You might need to goto "tools -> options - > debugging -> general" and untick "Enable Just My Code (Managed Only)"
  • You might also want to uncheck "Require source files to exactly match the original version", if you think your sources might be slightly out (beware however, as this can lead to you debugging with completely the wrong sources, which can be very confusing)

On certain cases you might find that your module doesn't get loaded at the point where you attach your debugger (for example if you have some sort of plug in archetecutre, and plugin assemblies are only loaded when you first use them). In these cases all you can do is try and make sure everything is prepared ready for when the module is loaded.

Kragen
thanx for such a detailed answer. i have tried it all but stilli got same prblem.
A: 

If entire methods are being skipped, look at the source and see if the System.Diagnostics.DebuggerStepThroughAttribute attribute is present.

Despite the name, it PREVENTS the debugger from stepping through the method.

Brad Bruce
no it skips some time from middle of the mathod and some times complete mathod.