オープンソースプロジェクト
dotnet/diagnostics avatar
dotnet/diagnostics

dotnet/diagnostics:.NETランタイムを調べるSOSと診断ツール群

このリポジトリには、さまざまな .NET Core ランタイム診断ツールとドキュメントのソース コードが含まれています。

スター 1,330フォーク 404C++MIT
GitHub

ひと目でわかる

これは何?
SOS、LLDBプラグイン、dotnet-dumpやdotnet-traceなどをまとめ、複数OS・アーキテクチャで.NET Coreを診断するリポジトリです。
誰に向いている?
dotnet/diagnostics:.NETランタイムを調べるSOSと診断ツール群は、READMEに記載されたdotnet/diagnostics、SOS、dotnet-dump、dotnet-gcdump、dotnet-trace、dotnet-countersを自分の環境で確認できる開発者や利用者に向いています。反対に、対応OS、モデル精度、転送互換性、性能を文書だけで保証してほしい場合には向きません。
商用利用できる?
できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
今もメンテナンスされている?
されています。最後のコミットは 1 日前です。
何の言語で書かれている?
主に C++ です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月14日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

SOSとLLDBプラグインの役割

dotnet/diagnostics リポジトリは、.NET Core ランタイム診断ツールのソースコードを保管しています。README は、現在の内容として SOS、SOS のマネージド部分、lldb SOS プラグイン、および複数のグローバル診断ツールを挙げています。つまり、単一のプログラムではなく、デバッガ拡張機能とユーティリティの集まりです。プロジェクトの説明も同じ内容であり、各ツールの関係や成熟度についての追加情報はありません。

dotnet/diagnosticsについて、README の dotnet/diagnostics、SOS、dotnet-dump、dotnet-gcdump、dotnet-trace、dotnet-counters に関する説明と、実際に生成された設定または出力を照合します。

dump、trace、counterの使い分け

README によると、このリポジトリの目標は、glibc ベースのポータブル Linux プラットフォーム(Centos 7 を基準とする)向けに SOS と lldb SOS プラグインをビルドし、加えて musl ベースのポータブルビルドがサポートしないプラットフォーム(Centos 6、Alpine、macOS)向けにもビルドすることです。テストは、OS/ディストリビューション(Centos 6/7、Ubuntu、Alpine、Fedora、Debian、RHEL 7.2)、アーキテクチャ(x64、x86、arm、arm64)、lldb バージョン 3.9 から 9.0、および開発中とサポート対象のすべての .NET Core メジャーバージョンにわたる大規模なマトリックスとして説明されています。これらは目標であり結果ではありません。README のビルドステータスセクションはコメントマーカーのみで空です。

dotnet/diagnosticsについて、導入時は dotnet/diagnostics、SOS、dotnet-dump、dotnet-gcdump、dotnet-trace、dotnet-counters の版と配置を記録し、記載されていない既定値を推測しません。

build.shとOS別前提

このリポジトリのビルドには、Git、CMake、Python、C++ コンパイラが必要です。README は、前提条件がインストールされていれば、リポジトリのルートにある build.cmd または build.sh を呼び出すだけでビルドできると述べています。また、ARM を除き、OS をまたいだクロスビルドは行わず、ARM は x64 上でビルドすると明記されています。README は、Windows、Linux、MacOS、FreeBSD、NetBSD のそれぞれの手順ページと、プライベートランタイムビルドでのテストに関するページへのリンクを提供していますが、それらのページの内容は要約されていません。

dotnet/diagnosticsについて、実行に失敗した場合は dotnet/diagnostics、SOS、dotnet-dump、dotnet-gcdump、dotnet-trace、dotnet-counters のどの段階で止まったかをログとコマンド単位で切り分けます。

glibc・musl・macOSの差

2 つ目の目標は、Centos、Alpine、Fedora など、デフォルトで古い lldb を提供するプラットフォーム向けに、特定バージョン(現在は 3.9)の lldb をスクリプトとドキュメント付きで入手しやすくすることです。README は SOS をデバッガ拡張機能として説明し、LLDB プロジェクトへのリンクがその関係を示していますが、実装の詳細はありません。また、このリポジトリは、.NET Core ランタイムのシンボルサーバーサポートなどの新しい SOS および lldb プラグイン機能の帯域外開発を可能にし、SOS のマネージド部分である SOS.NETCore をランタイムリポジトリに置くことによるソースビルド問題を解決することを意図しています。

dotnet/diagnosticsについて、複数環境を扱う場合は dotnet/diagnostics、SOS、dotnet-dump、dotnet-gcdump、dotnet-trace、dotnet-counters の差分を同じ入力で比較し、未確認の対応範囲を広げません。

大規模なテストマトリクス

README は、それぞれドキュメントへのリンク付きで 4 つのグローバル診断ツールを挙げています。dotnet-dump はダンプ収集・分析ユーティリティ、dotnet-gcdump はライブ .NET プロセスの gcdump を収集するヒープ分析ツール、dotnet-trace は実行中の .NET Core アプリケーションのイベント収集を有効にしてローカルトレースファイルに保存するもの、dotnet-counters は .NET Core アプリケーションのパフォーマンスカウンタをリアルタイムで監視するものと説明されています。README はこれらの 1 行説明のみを提供しているため、コマンド構文、使用例、出力形式についてはリンク先のドキュメントに委ねられています。

dotnet/diagnosticsについて、権限や外部接続が関わる場合は dotnet/diagnostics、SOS、dotnet-dump、dotnet-gcdump、dotnet-trace、dotnet-counters が要求する範囲を確認し、不要な認証情報を入力しません。

リリースとruntimeの対応確認

README は、このリポジトリが MIT ライセンスの下でライセンスされていると述べています。ただし、この記事用に提供されたライセンス抜粋には LICENSE ファイルのテキストが含まれていないため、具体的な許諾内容を引用することはできません。README はまた、FAQ、LLDB デバッガサイト、SOS の MSDN ページ、CoreCLR のデバッグ手順、dotnet/runtime リポジトリ、公式ビルド手順へのリンクを提供しています。これらのリンクは README 自身が示した参考先であり、プロジェクトのセキュリティ姿勢やサポート体制についての詳細を確立するものではありません。

dotnet/diagnosticsについて、採用判断では dotnet/diagnostics、SOS、dotnet-dump、dotnet-gcdump、dotnet-trace、dotnet-counters を使う最小ケースを先に作り、出力またはエラーを README の前提と照合します。

ビルドの入口はリポジトリ直下の build.sh または build.cmd ですが、READMEはOSごとに documentation/building/windows-instructions.md、linux-instructions.md、osx-instructions.md、freebsd-instructions.md、netbsd-instructions.mdを参照する構成です。OSをまたいだクロスビルドはできず、ARMだけx64上で扱う例外が記載されています。dotnet-dumpでダンプを採取する場合、dotnet-traceでイベントを記録する場合、dotnet-countersでライブのカウンターを見る場合では入力も保管物も異なります。SOSの対応ランタイムとLLDB版をリリースノートで分けて確認してください。実施記録には対象版と入力条件を残し、成功した結果だけでなく失敗した場合の出力も保存します。設定を変更した前後で同じ確認を繰り返せるようにし、READMEに書かれた機能と自分の環境で確認できた事実を分けます。採用判断では、導入できたかだけでなく、更新、障害、切り戻し、権限、ライセンスを同じ担当者が追跡できるかを確かめます。

編集部の結論

dotnet/diagnostics:.NETランタイムを調べるSOSと診断ツール群は、READMEに記載されたdotnet/diagnostics、SOS、dotnet-dump、dotnet-gcdump、dotnet-trace、dotnet-countersを自分の環境で確認できる開発者や利用者に向いています。反対に、対応OS、モデル精度、転送互換性、性能を文書だけで保証してほしい場合には向きません。dotnet/diagnostics、SOS、dotnet-dump、dotnet-gcdump、dotnet-trace、dotnet-countersを含む最小の入力を用意し、出力、ログ、権限要求を確認してから運用範囲を決めてください。

公式情報源

  1. Official README
  2. Project repository
  3. Release notes
コミュニティノート

コミュニティノート