Software Is Hardwork

ISimplicityAffinative: The endless pursuit of anti-complexity.
The technology-centric blog of D. P. Bullington.

Email D. P. Bullington View D. P. Bullington\ Follow D. P. Bullington on Twitter Get Software Is Hardwork code on CodePlex

Blog Post(s)

Optimal Debug Settings for VS.NET 2005
Wednesday, February 27, 2008

Out of the box, VS.NET 2005 debugger options cripple you from debugging efficiently and effectively. I have compiled this list of options which will allow a more pleasant debugging experience. Note, this also is applicable to the Microsoft CLR Debugger 2.0 (dbgclr.exe). Click the Tools menu and select Options. In the Options dialog box, expand the Debugging node and select General.

[_] Ask before deleting all breakpoints
[X] Break all processes when one process breaks
[_] Break when exceptions cross AppDomain or managed/native boundary
[X] Enable address-level debugging
    [_] Show disassembly if source is not available
[X] Enable breakpoint filters
[_] Enable the Exception Assistant
    [X] Unwind the call stack on unhandled exceptions
[_] Enable Just My Code (Managed only)
    [_] Show all members for non-user objects in variables windows (Visual Basic only)
    [X] Warn if no user code on launch
[X] Enable property evaluation and other implicit function calls
    [_] Call ToString() on objects in variables windows (C# only)
[_] Enable source server support
    [_] Print source server diagnostic messages to the Output window
[_] Highlight entire source line for breakpoints and current statement
[X] Require source files to exactly match the original version
[_] Redirect all Output window text to the Immediate window
[_] Show raw structure of objects in variables windows
[X] Suppress JIT optimization on module load (Managed Only)
[X] Warn if no symbols on launch (Native Only)

Once I have had time, I will publish an updated version of this post applicable to VS.NET 2008.

3 comments:

silky said...

Out of interest, why don't you have the .ToString() set? I think I find that one quite valuable ...

D. P. Bullington said...

.ToString() causes side effects when debugging with some code, such as NHibernate (lazy loaded proxies) and such.

Jeff Brown said...

To that end, I usually turn off all implicit evaluation.

As a bonus it reduces the likelihood that the debugger will timeout while evaluating a property. Timeouts are bad because then you can't evaluate other expressions until you resume execution.

So I make heavy use of the Immediate window.

Blog Archive

Labels

Blog List

Speaking Enagements

  • 12/8/2009 | Hampton Roads .NET Users Group | Cheaspeake, VA | Topic TBD
  • 07/16/2009 | Charlottesville .NET Users Group | Charlottesville, VA | Debugging on the Windows Platform
  • 05/23/2008 | NoVa CodeCamp 2009.01 | Reston, VA | Going Proxy-less - The WCF Proxy Factory
  • 04/25/2009 | Richmond Code Camp 2009.1 | Richmond, VA | Software Programmer to Software Engineer: Concepts to Span the Divide
  • 02/05/2009 | Richmond .NET Users Group | Richmond, VA | Debugging on the Windows Platform
  • 10/04/2008 | Richmond Code Camp 2008.2 | Richmond, VA | Going Proxy-less - The WCF Proxy Factory

Disclaimer

© D. P. Bullington, all rights reserved. Everything posted on this blog is my personal opinion and does not necessarily represent the views of my employer or its clients.