Open棟梁Project - マイクロソフト系技術情報 Wiki
目次  †
概要  †
以下は障害発生までに至る因果関係の事例になります。
「現象」と「原因」はプラットフォームの内部状態を理解しなければ紐付けできません。
逆に言えばプラットフォームの内部動作を理解しておけば、この紐付けも容易になります。
これを行うには
- プラットフォームに対する知識
 
- 状態確認・分析方法に関する知識
 
- 分析結果から原因を推測するスキル
 
が必要になります。
xxx例外の発生  †
現象  †
- 例外でクラッシュ
 
- xxx例外
 
分析手順  †
- ログ確認
WERなどから例外情報を確認する。 
- ダンプ+ダンプ解析
- 本番環境でのみ再現する場合はクラッシュダンプ取得+解析
 
- 例外情報と、例外を発生させているスレッドのスタックを確認する。
 
 
- プログラムのプロファイル
開発環境で再現できる場合、プログラムをデバッグ 
原因  †
プログラムのバグによる未処理例外
解決策  †
OutOfMemory?例外の発生  †
現象  †
- 性能が出ない → 例外でクラッシュ
 
- メモリ使用量大 → GC、ページング → オーバヘッド大 → OutOfMemory?例外
 
分析手順  †
- ログ確認
WERなどから例外情報を確認する。 
- パフォーマンスカウンタ
ページング、メモリリークの確認、プロセスの特定など 
- ダンプ+ダンプ解析
- 本番環境でのみ再現する場合はダンプ取得+解析
 
- 仮想アドレス空間の確保状況を確認する。
 
 
- プログラムのプロファイル
- 開発環境で再現できる場合、プロファイルを実行
 
- ヒープの使用状況を確認する。
 
 
原因  †
プログラムのバグによるメモリリーク
解決策  †