ホームページ > バックエンド開発 > Golang > Go コードをデバッグするときに、より詳細なスタック トレースを取得するにはどうすればよいですか?

Go コードをデバッグするときに、より詳細なスタック トレースを取得するにはどうすればよいですか?

DDD
リリース: 2024-12-16 03:28:10
オリジナル
430 人が閲覧しました

How Can I Get More Detailed Stack Traces When Debugging Go Code?

スタック トレースを使用した Go コードのエラーのデバッグ

Go では、パニックが発生した場合、スタック トレースは通常、コードがパニックになったポイント。このため、サードパーティのコード内のエラーの原因を特定することが困難になる可能性があります。ただし、開発者がより詳細なスタック トレースを取得できる手法があります。

「golang/error」パッケージの使用

「golang/error」パッケージは、 stackTracer と呼ばれるインターフェイス。これにより、エラーがエラーを説明するフレームのスタックを返す StackTrace() メソッドを実装できるようになります。

このインターフェイスを使用するには:

type stackTracer interface {
    StackTrace() errors.StackTrace
}
ログイン後にコピー

エラーが stackTracer を実装している場合、それをインターフェイスにキャストして StackTrace() メソッドを呼び出すことで、そのスタック トレースを取得できます:

err, ok := errors.(stackTracer) // ok is false if errors doesn't implement stackTracer
if ok {
    stack := err.StackTrace()
    fmt.Println(stack) // Print the stack trace
}
ログイン後にコピー

代替案ライブラリ

「golang/error」パッケージに加えて、カスタマイズ可能なスタック トレース オプションを備えたエラー処理機能を提供する他のライブラリがあります。

  • eris: エラー処理カスタム書式設定と読み取り可能なスタック トレースをサポートするライブラリ。
  • go-errors/errors: のエラーにスタックトレースのサポートを追加します。 Go.
  • palantir/stacktrace: Go に広範なスタック トレース機能を提供します。

以上がGo コードをデバッグするときに、より詳細なスタック トレースを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート