1

Visual Studio でアプリケーションをデバッグしたいのですが、1 つのクラスのソース コードしかありません。そのファイル内の 1 つの関数をステップ実行するだけでよいのですが、何をする必要があるのか​​わかりません。手順は通常次のようなものだと思います。

  1. VS でファイルを開く
  2. 「シンボル」(.PDB ファイル) を読み込む
  3. 実行中のプロセスにアタッチする

#1 と #3 を行う方法は知っていますが、.PDB ファイルなしで #2 を行う方法はわかりません。これを機能させるために .PDB ファイルを生成することは可能ですか? ありがとう!

4

4 に答える 4

7

*.pdb ファイルが必要です (投稿のステップ 2)。これらのファイルには、ソース コードとコンパイル済みアセンブリ間のマッピングが含まれています。だからあなたのステップは正しいです。ソース ファイルに元のファイルとの違いがある場合は、BP のプロパティ ダイアログで [ソース コードが元のバージョンと異なることを許可する] チェック マークを設定します。

Visual Studio のブレークポイントとトレースポイント

PDB ファイルがない場合は、Reflector.FileDisassemblyrまたはFileGenerator For Reflectorを使用してプロジェクトの逆コンパイルを試みることができます。これらのファイルを再コンパイルして PDB を取得できます

Deblector - Reflector 用のデバッグ アドインもご覧ください。

于 2008-09-20T05:09:09.487 に答える
1

デバッグしようとしているアプリケーションに属するシンボル ファイル (.PDB) ファイルが必要です。

MSDN: PDB ファイル

Visual Studio デバッガーは、EXE または DLL ファイル内の PDB へのパスを使用して、project.pdb ファイルを検索します。デバッガーがその場所で PDB ファイルを見つけられない場合、またはパスが無効な場合 (プロジェクトが別のコンピューターに移動された場合など)、デバッガーは、EXE を含むパスと、その後に [オプション] ダイアログ ボックスで指定されたシンボル パスを検索します。 . このパスは通常、Symbols ノードの Debugging フォルダーです。デバッガーは、デバッグ中のバイナリーと一致しない PDB をロードしません。

于 2008-09-20T05:08:57.660 に答える
0

シンボル ファイルは .pdb ファイルです。これを実行可能ファイルの隣に配置すると、シンボルがロードされ、ソース ファイルがポイントされます。

于 2008-09-20T05:09:30.407 に答える
0

あなたの場合、「シンボル」は、デバッグするアセンブリの pdb ファイルを意味します。デバッガーは、一致する pdb を持っているだけで、すべてのソースを持っている必要はありません。pdb はアセンブリのビルド中に生成されますが、残念ながら事後に作成することはできません。pdb がない場合は、ソース コードよりも低いレベルでデバッグする必要があります。

マシン上でアセンブリをビルドした場合、アタッチ時にシンボルが検出されます。その場合、ソースにブレークポイントを設定し、そのコードを実行するために必要なことをすべて実行すると、ブレークポイントに到達します。

ビルドしていない場合は、アセンブリの pdb を見つける必要があります。Debug/Windows/Modules の下にあるモジュール ウィンドウは、多くの場合、プロセスで読み込まれたアセンブリとバージョン情報、およびタイムスタンプを表示するのに役立ちます。

アセンブリに複数のバージョンが存在する可能性がある場合 (多数のナイトリー ビルドや、継続的インテグレーション ビルドの最新の 20 程度のバージョンを保持する場合など) には、この情報が必要になります。

それが役立つことを願っています。

于 2008-09-20T05:25:09.823 に答える