ホームページ >バックエンド開発 >C++ >例外を発生させずに .NET でスタック トレースを記録するにはどうすればよいですか?

例外を発生させずに .NET でスタック トレースを記録するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-05 01:12:41895ブラウズ

How Can I Log a Stack Trace in .NET Without an Exception?

例外がない場合の .NET でのスタック トレースのログ記録

コードをデバッグするときに、現在のスタック トレースを出力することは、コードを理解するために非常に貴重です。プログラムの流れと問題の特定。ただし、例外が発生していない状況では、try-catch ブロックまたは Exception.StackTrace プロパティを使用する標準的なアプローチは機能しません。

解決策

現在のスタック トレースを例外なく出力するには、System.Diagnostics.StackTrace を利用します。 class:

System.Diagnostics.StackTrace t = new System.Diagnostics.StackTrace();

には、プログラムのエントリ ポイントに至るまで、現在実行中のメソッドやその呼び出し元などに関する情報が含まれます。

次のコードを考えてみましょう:

public void executeMethod()
{
    logStackTrace();
    method();
}

executeMethod() を呼び出した場合

at executeMethod() in C:\Path\To\MyCode.cs:line 10
at method() in C:\Path\To\MyCode.cs:line 15
at Program.Main() in C:\Path\To\MyMain.cs:line 20

このトレースには、例外が発生していないにもかかわらず、呼び出しスタックが表示されます。

追加リソース

さらに詳しいデバッグ ツールについては、System.Diagnostics 名前空間を調べてください。 NLog、log4net、Enterprise Library などのログ フレームワークは、スタック トレースをキャプチャする機能を含む、包括的なログ ソリューションを提供します。

以上が例外を発生させずに .NET でスタック トレースを記録するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。