Frage

In Delphi die Compiler-Direktiven {$ d-} und {$ l-} ermöglicht es Ihnen, effektiv zu vermeiden Erzeugung von Debug-und lokalen Variable Informationen für einen bestimmten Abschnitt des Codes.

In der Praxis, die den Effekt zu „verstecken“ dem Code aus der Debug-Ansicht hat, ist es nicht in dem Call-Stack angezeigt werden und Sie nicht Schritt in sie während des Debuggen.

Gibt es eine Möglichkeit das gleiche Ergebnis in C # VS 2008 zu erreichen?

Hinweis: Der Grund ist, dass wir einen stabilen Rahmen, der muss nicht ausgetestet werden, aber mit dem Call-Stack zu vermasseln neigen und mit dem Standard-Debug-Flow.

War es hilfreich?

Lösung

Ich verwende DebuggerNonUserCodeAttribute , so dass Sie standardmäßig nicht in den Code brechen oder Schritt; Allerdings ist die benifit dazu über DebuggerStepThrough, dass Sie die Optionen-> Debugger-> Just My-Code Einstellung gehen und ermöglichen brechen / Debuggen des Codes Sie markiert. Dies trägt wesentlich dazu bei, wenn Sie Fragen haben. Ich es in der Regel auf ganze Klassen verwenden.

BTW, wird der Anruf automatisch Stapel Nicht-Benutzer-Code verbergen, als mit diesem Attribut gekennzeichnet :) Natürlich können Sie einfach mit der rechten Maustaste auf den Call-Stack-Fenster und Toggle „Show externen Code“, um hide / show die fehlenden Stapelinformation.

Andere Tipps

Ich glaube, Sie wollen die DebuggerStepThrough Attribut:

DebuggerStepThrough weist den Debugger zu Schritt durch den Code stattdessen in den Code zu treten.

[DebuggerStepThrough]
public void MyMethod()
{

}

Dies ist besonders nützlich für Setter / Getter da diese Debugging in der Regel nur Rauschen hinzufügt (Beispiel aus Msdn):

public int Quantity
{ 
    [DebuggerStepThrough] 
    get { return ComplexLogicConvertedToMethod(); } 
    [DebuggerStepThrough]      
    set { this.quantity = value ; }
}

oder einen bestimmten Abschnitt des Codes überspringen:

... some production code
#if DEBUG
    Console.WriteLine("Debug version");
#endif
... some more production code
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top