System.Diagnostics Namespac ...


.NET Framework Class Library
DebuggerStepThroughAttribute Class

Updated: January 2010

Specifies the DebuggerStepThroughAttribute. This class cannot be inherited.

Namespace:  System.Diagnostics
Assembly:  mscorlib (in mscorlib.dll)
Syntax

Visual Basic (Declaration)
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
<AttributeUsageAttribute(AttributeTargets.Class Or AttributeTargets.Struct Or AttributeTargets.Constructor Or AttributeTargets.Method, Inherited := False)> _
Public NotInheritable Class DebuggerStepThroughAttribute _
    Inherits Attribute
Visual Basic (Usage)
Dim instance As DebuggerStepThroughAttribute
C#
[SerializableAttribute]
[ComVisibleAttribute(true)]
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Constructor|AttributeTargets.Method, Inherited = false)]
public sealed class DebuggerStepThroughAttribute : Attribute
Visual C++
[SerializableAttribute]
[ComVisibleAttribute(true)]
[AttributeUsageAttribute(AttributeTargets::Class|AttributeTargets::Struct|AttributeTargets::Constructor|AttributeTargets::Method, Inherited = false)]
public ref class DebuggerStepThroughAttribute sealed : public Attribute
JScript
public final class DebuggerStepThroughAttribute extends Attribute
Remarks

The common language runtime attaches no semantics to this attribute. It is provided for use by source code debuggers. For example, the Visual Studio debugger does not stop in a method marked with this attribute but does allow a breakpoint to be set in the method.

For more information about using attributes, see Extending Metadata Using Attributes

Inheritance Hierarchy

System..::.Object
  System..::.Attribute
    System.Diagnostics..::.DebuggerStepThroughAttribute
Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Platforms

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360, Zune

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Version Information

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0, 1.0

XNA Framework

Supported in: 3.0, 2.0, 1.0
See Also

Reference

Change History

Date

History

Reason

January 2010

Removed reference to specific version of Visual Studio.

Customer feedback.

Tags :


Community Content

EugenP
Not sure I get this
So this attribute it allows setting a breakpoint in a method but the debugger will not stop. Does this make sense?
Tags : contentbug

Merak
Strange choice of AttributeTargets
The attribute only targets, entire classes or structs, and methods.

However properties (which are more likely to be so basic that stepping over them makes most sense) cannot have this attribute.

To apply this to properties, you have to apply it to the specific get or set, eg

publicstring SomeProperty
{
[System.Diagnostics.DebuggerStepThrough]
get
{
string prop = (string)ViewState["Property"];
return (prop == null) ? String.Empty : prop;
}
[System.Diagnostics.DebuggerStepThrough]
set
{
ViewState["Property"] = value;
}
}



Tags : contentbug

Stanley Roark
No information about what it does?
This line: "Specifies the DebuggerStepThroughAttribute. This class cannot be inherited." is not at all useful. Please give some information on what it does and list some common usage scenarios?


FX Swede
Click here for helpful info
This blog entry helped me.
http://mark.michaelis.net/Blog/SystemDiagnosticsDebuggerStepThroughAndMoreSystemDiagnosticsNamespaceStuff.aspx
Tags : contentbug

knockNrod
Not sure I get this

It makes sense if it's a method that does something time-critical or something so annoyingly simple that stepping into it or stepping through it would be most annoying or troublesome, but you still don't want to give up the ability to debug it. As I understand this, you can't step into or through something with this attribute, but you can set a breakpoint which will be hit and pause execution (allowing you to examine variables and such). Not sure if Stepping from said breakpoint would be equivallent to stepping out of the routine or not. Might have to test that, but I never thought it mattered much. Personally, I don't think I'd set this attribute unless and until I'd thoroughly debugged whatever I was adding it to. YMMV.

Tags :

sisdog
XSD.EXE Uses This and it Killed Me!!!
I just lost two days of dev time because the XSD.EXE tool generates code that adds this attribute. So, in good format I created a separate *.cs class as a complimental "partial" definition to the classes that XSD.EXE generated for me to keep them pristine and in sync with my raw *.XSD file. But then when I was trying to step through my partial class, this stupid attribute stopped me from stepping into my own partial code.

So why would XSD.EXE do this? Or better yet, why would anyone use this? As a developer why can't you just Step-Over methods while Debugging?
Tags : xsd.exe xsd

Page view tracker