私はサービスの状態がデッドロックであるように見えるウィンドウで何らかのデバッグをするつもりです。たぶんアプローチはダンプをすることでしょう。 Goサービスのプログラムダンプはどうしたらできますか?そのダンプを分析しますか?Windows上でGoプログラムのダンプを強制的に行うことはできますか?
2
A
答えて
1
これはruntime.Stack機能を使用して行っています。その出力は、パニック()から取得したものと同等ですが、プログラムを停止することはありません。スタックをファイル/ stdoutにダンプするシグナルハンドラを設定したり、必要に応じて定期的にスタックをダンプするためのゴルーチンを起動することができます。
runtime/debugパッケージをチェックアウトすることもできます。
0
ゴルーチンデッドロック解析は、trace
コマンドを使用してうまく処理されます。
まず、いつでもトレースを実行するためのデータを取得する必要があります。これは、pprof
パッケージまたはtrace
パッケージを使用して取得できます。
https://golang.org/pkg/net/http/pprof/ https://golang.org/pkg/runtime/trace/
trace
パッケージはあなたがストリーム(例えばへのトレースを書き出すことができますしながら、pprof
パッケージには、WebサーバへのHTTPハンドラを追加し、アプリの実行中にトレース・データを収集できるようになりますファイル)が、私は自分でそれを試していない。
あなたは、トレース・データを収集したら、あなたは状態のウェブビューを生成するために収集したデータに対してtrace
コマンドを実行することができます。
出力例はここにあります:
関連する問題
- 1. anglejsフォームで強制的にダンプする
- 2. UISearchBarでプログラムで強制的に検索を実行できますか?
- 3. Goでの強制的なマップタイプ
- 4. 安全プレイブックの実行を強制的に強制終了できますか?
- 5. NSWindowController Subclassに強制的に制御することはできますか?
- 6. JavaアプレットのネットワークトラフィックをFiddler経由で強制的に強制することはできますか?
- 7. 数分後に強制的にCプログラムの実行を終了することができます
- 8. プログラムで強制的にiOS 7アプリを強制停止しますか?
- 9. AssertionErrorでPythonを強制的にデバッグすることはできますか?
- 10. Windowsフォームすべての画面を強制的に強制して、フォームを上に置きます
- 11. JS: "false"をfalseに強制的に強制することはできますか?
- 12. ejabberdからユーザーを強制的にログオフすることはできますか?
- 13. ULを強制的にOLにすることはできますか?
- 14. iOSの場合は、プログラムでSMSを強制的にMMSに適用することができます
- 15. Nlogファイルを強制的にアーカイブすることはできますか
- 16. ノード@ 6を強制的にリンクすることはできますか?
- 17. 強制的にgitサブモジュールを更新することはできますか?
- 18. 強制的にWindowsにプログラムを認証する
- 19. CustomUnboundColumnDataイベントを強制的に発生させることはできますか?
- 20. Windows上でスレッドをプログラムでフリーズすることはできますか?
- 21. C#でカスタムコンパイラエラーを強制することはできますか?
- 22. 私のネットワーク上でIPv6を強制することはできません
- 23. 管理者権限なしで強制的にプログラムを実行しますか?
- 24. KIFはアプリを強制的にバックグラウンドにすることはできません
- 25. 私が行うことができますWindows上でC
- 26. プログラムを強制的にページファイルにすることでRAMを節約する
- 27. iPad上でiPhone版を強制的に実行する
- 28. Octopusを使って強制的にWindowsサービスを強制終了できますか?
- 29. 改行を強制的に行うコマンド
- 30. Tkinterウィンドウを強制的にフルスクリーンの上に置く - Windows 10
"ダンプ"とはどういう意味ですか?スタックトレースまたはコアファイルが必要ですか? – JimB
私はコアファイルを信じています。私はデッドロックの問題を理解するために状態全体が必要だと思う。スタックトレースは、おそらく私がスタックトレースを引き起こした時間に依存するでしょう。 – lucidquiet
コアファイルは、作成時の状態によっても異なります。クイックグーグルはhttps://support.microsoft.com/en-us/kb/241215を指しています。スタックトレースを使用すると、各ゴルーチンがブロックされている場所を簡単に表示できます。 – JimB