私はまだC++での相対的な初心者ですが、サードパーティのDLLでネイティブのC++ DLLから静的にリンクしている問題を抱えています。 Visual Studio 2012を使用してDLLをデバッグしています。WinDbgがVisual Studioでできないことを教えてください。
(FWIW、サードパーティのDLLは、SybaseのOpen Clientで、私は動的に私のC++ DLLをロードし、私が書いたC#の実行、経由で私のDLLをデバッグしています。)
私は、Visual使用しましたStudioを使用して、逆アセンブルを実行し、サードパーティのDLLのレジスタとメモリの使用状況を確認します。 Visual Studioは私のプロセスの中で何が起こっているかについて多くの良い情報を与えてくれましたが、私が見ているものよりも多くのものがあるかもしれないと思っています。
私はWinDbgが非常に強力なツールだが、それをうまく使う方法を学ぶにはかなりの時間と労力がかかることを読んだ。私の質問は、WinDbgを使うことを学ぶ努力をする価値があるのか、それともVisual Studioのデバッグツールが私にほとんど同じ情報を与えるのだろうか?
Visual StudioデバッガのWindowsヒープをいつか歩いてみてください。 WinDbgで実際に*成功*します。 – WhozCraig
WinDbgスクリプトは、構文がVSと同じように強力である可能性がありますが、おそらくアドインやマクロを使用するとVSでも同様の機能を得ることができます。 – 0xC0000022L
メモリリーク検出、自動クラッシュ解析、ハンドルリークトレース、メモリ検索、すべてのスレッドのコールスタックを簡単にダンプする機能、ブレークポイントがヒットしたときにブレークポイントを設定/解除する機能、VSがインストールされていないマシンでデバッグする機能、ロギング、スクリプト作成、ループサポートなど。基本的には、軽量で、BSデバッガには、VSを使用することが困難または不可能な痛みを伴う作業を自動化するツールがたくさんあります。最高の裏書はMSの使用ですこれはWindowsをデバッグするためには険しい学習曲線ですが、結局は非常にお得です – EdChum