質問

Delphiでは、コンパイラディレクティブ{$ d-}および{$ l-}を使用すると、コードの定義されたセクションのデバッグおよびローカル変数情報の生成を効果的に回避できます。

デバッグビューからコードを「非表示」する効果がある実用的な問題では、コールスタックには表示されず、デバッグ中にステップインしません。

VS 2008を使用してC#で同じ結果を達成する方法はありますか?

注:その理由は、デバッグする必要はないが、コールスタックと標準のデバッグフローを台無しにする傾向がある安定したフレームワークがあるためです。

役に立ちましたか?

解決

私が使う Debuggernonusercodeattribute そのため、デフォルトでは、コードに侵入したり、コードに足を踏み入れたりしないようにします。ただし、デバッガーズプスターを介したこれのベニフィットは、オプションに移動できることです。これは、問題がある場合に大幅に役立ちます。私は通常、クラス全体でそれを使用します。

ところで、コールスタックは、この属性でマークされた非ユーザーコードを自動的に非表示にします:)もちろん、コールスタックウィンドウを右クリックして「外部コードを表示」を切り取って、欠落しているスタック情報を非表示/表示できます。

他のヒント

私はあなたが欲しいと思います DebuggerStepThrough 属性:

DebuggerStepThrough コードに足を踏み入れるのではなく、コードを踏み出すようにデバッガーに指示します。

[DebuggerStepThrough]
public void MyMethod()
{

}

これは、通常はノイズを追加するだけであるため、セッター/ゲッターに特に役立ちます(MSDNの例)。

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

または、コードの特定のセクションをスキップするには:

... some production code
#if DEBUG
    Console.WriteLine("Debug version");
#endif
... some more production code
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top