BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース .NET向けデッドロックのデバッグ

.NET向けデッドロックのデバッグ

難しい設定などは一切なしで、.NETにはデッドロック検出のサポートがない。通常、デッドロックのチェックはデバッガを取り付けて、各スレッドを検査することでおこなわれる。CGUIデバッグツール、HawkEyeorneliuの作成者であるCorneliu氏が、その代わりになるものを提供してくれた。氏のACorns.Debuggingツールは、それらを再コンパイルすることなく、ほとんどの.NETプログラムに対して機能する。Corneliu氏は、以下のようにまとめている。

  1. いかなる方法や形式による、コードの再コンパイルが必要がない。また、外部ライブラリの参照やコード内の特殊型のロックを使用するために、コードを修正する必要もない。
  2. PDBファイルがない、リリースビルドで動作する。
  3. 実行中のプロセスや以前に取り込んだメモリダンプで動作する。
  4. 複数のスレッドにまたがるデッドロックを検出し、詳細なコールスタックおよびロック使用に関する情報を返す。
  5. スレッドが他のスレッドによって取得されたロックを待機しているデッドロックのみを検出する。
  6. 食事する哲学者の問題および待機やウェイク /チェックやロック時間の組み合わせで作成されたデッドロックは検出しない。
  7. cdb.exe(MicrosoftのWindowsパッケージ向け無償デバッグツールの一部)と外部の依存関係がある。
  8. インストールが全く必要ない。xcopy開発。
  9. そして何よりも、無償である(ソースコードはまもなく公開される予定)

並列プログラミングを始めて間もない人向けに、Corneliu氏はデッドロックの簡潔な導入とプログラム結果の解釈(リンク)に関する解説を提供している。

ACorns.Debugging.FindDeadlock.1.0.1.zip (ZIP)はMicrosoftのDebugging Tools for Windows(リンク)に依存している。

原文はこちらです:http://www.infoq.com/news/2008/08/ACorns.Debugging

この記事に星をつける

おすすめ度
スタイル

BT