ハンドルリーク

ハンドルリークしていたとき、どんなハンドルがリークしたのかお手軽に調べたいなと。

windbg使っていれば
!htrace -enable
しておいて、アプリケーションを操作してハンドルが増えたところで、ブレークして
!htrace -diff
とするとハンドルとそのハンドルが作られたコールスタックが表示される。
ヘルプには
!htrace -enable [Max_Traces]
と書いてあるけれど、WindowsXPでは記録されるコールスタックの深さが変えられないみたい。

もうひとつはProcessExplorerでCtrl+LでShow Lower PaneしてCtrl+Hでハンドルを表示させておいて、Ctrl+Aでファイルに保存。アプリケーションを操作してハンドルが増えたら、もう一度別のファイルに保存して、その二つのファイルをdiffするのもいいかな。