8

最近、ネイティブからマネージコードプログラミングに切り替えました。.NETを使用しています。

Windbgはかなり前から使っているので、マネージコードのデバッグにも使いたいです。

私の検索により、SOS(Son of Strike)拡張機能が見つかりました。これには、かなり強力なコマンドがあるようです。

SOSで使用されているコマンドのほとんどを理解していますが、ネイティブコードのpおよびt命令を使用して実行できるのと同じように、ソースコードを適切にステップスルーする方法を見つけることができません。

これはデバッグ体験を難しくします、そして私はそれをデバッグしている間本当にコードをステップスルーしたいと思います。

これについて少し調べたところ、MSが統合マネージドデバッグをリリースしたように見えるWindbgの6.7.05.0バージョンを使用してこれが可能であることがわかりましたが、それ以降のバージョンではロールバックされました。

それでも、SOSを介してデバッグしながら、「ソース」コードをライブでステップ実行できることに非常に興味があります。特に、それが今の私のデバッグ体験を本当に妨げているからです。

これを達成する方法はありますか?

これを行う方法(または実用的な回避策)に関するヘルプをいただければ幸いです。

4

3 に答える 3

7

!sosex.mtと!sosex.mguを使用してみてください。'p'コマンドはアドバタイズされたとおりに機能するはずです。

于 2012-10-29T13:13:31.480 に答える
6

Windbgは、クラッシュしたプロセスのミニダンプの分析に優れています。ただし、これはマネージデバッガではありません。

Visual StudioにSOSをロードすることで、ケーキを手に入れて食べることもできます。これにより、マネージデバッガーで使用できる通常のデバッグツールと、SOSから取得できる診断を使用できます。いくつかの制限が適用されます。

  • アンマネージデバッグ、プロジェクト+プロパティ、[デバッグ]タブを有効にし、オプションにチェックマークを付ける必要があります
  • VSは32ビットプロセスであるため、SOSの32ビットバージョンのみを使用できます。[プロジェクト+プロパティ]の[ビルド]タブで、64ビットバージョンのWindowsを使用している場合は、x86が選択されていることを確認してください。

デバッグを開始し、イミディエイトウィンドウに切り替えます。と入力.load sos.dllすると、のようなメッセージが表示されますextension C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos.dll loaded。!helpと入力し、SOSコマンドがリストされていることを確認します。

于 2012-10-29T15:28:38.727 に答える
0

ソースコードをwindbgにフックアップしたい場合は、次の手順に従うことができます。

  1. [ファイル]->[ソースファイルパス]に移動し、ソースファイルのあるフォルダーを選択します。
  2. [表示]->[コールスタック]に移動すると、新しいウィンドウが開きます。
  3. コールスタック内を移動し、関連するエントリをクリックすると、コードブラウザでウィンドウが開きます。
于 2013-10-16T05:41:48.257 に答える