2

エディターで開いたのですが、まったく面倒です。

ところで、「逆アセンブリ」ビューで、すべてのアセンブリ コードをダンプすることは可能ですか? 試してみましたが、行の画面しか取得できません

4

4 に答える 4

6

私はあなたの質問を追跡してきました。ソース コードがない DirectShow プラグインをデバッグしようとしていると思います。ある種のカメラ ギズモ。

いいえ、.pdb ファイルをテキスト エディターで開いても、役に立つ情報は何も表示されません。バイナリデータです。使用しているプラ​​グインに関連する .pdb があることは知っています。名前付き関数を使用して適切なスタック トレースを取得できます。Microsoft Symbol サーバーから .pdb を取得した可能性があります。.pdb ファイルの読み取りは、デバッガーの仕事です。dbghelp API はコア API です。

ただし、デバッガーからまだわかっていないことは表示されません。.pdb ファイルは関数の単なるデータベースです。削除されたものを取得しました。コール スタック ウィンドウに表示される内容以上のものは表示されません。

最終的に、これは一連の XY 質問です。本当の X の問題が何であるかを明らかにすることなく、Y について尋ね続けます。X について私たちに話さない限り、このような役に立たない回答しか返ってきません。

于 2010-09-08T21:51:22.333 に答える
4

CodeProject: プログラム データベース (PDB) ファイルの内容を検査する方法

ただし、これらのファイルはデバッガー用であり、直接あなた用ではないことに注意してください。少なくとも、テキストまたは 16 進エディタで可能なすべてのファイル形式を読み取れるようにしたいという緊急の願いはありません。

于 2010-09-08T18:26:18.183 に答える
0

あなたが望むのはdumpbinコマンドのようです。これには、VC ツールが PATH にある必要があることに注意してください。スタート メニューの適切なショートカットを使用するか、 run を使用できます%VSxxCOMNTOOLS%\vsvars32.bat。ここxxで、 は使用している VC の実際のバージョンのニーモニックです。set名前は実際に環境で設定されます。たとえば、MSVC 2005 Express と MSVC 2008 Express がインストールされているシステムでは、次のようになります。

C:\code\xemacs-beta\nt>set | grep "VS.*COMNTOOLS"
VS80COMNTOOLS=C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\
VS90COMNTOOLS=C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\

したがって、パスに追加された VC 9 (2008) ツールを使用して新しいシェル ウィンドウを作成するには、start "VC 9" "%VS90COMNTOOLS%\vsvars32.bat". ("VC 9"引数は、新しいウィンドウのタイトルです。)

いずれにせよ、PATH にある VC ツールを使用して、次のようなコマンドを実行できますdumpbin /disasm ..\src\temacs.exe > temacs.disasm(ただし、おそらくntxemacs ツリーのサブディレクトリにいないので、そこに好きなパスを貼り付けてください)。これは、シンボル名を見つけることができる適切な PDB を使用して、指定されたファイルを逆アセンブルします。

MS が何を呼び出しているかについてのドキュメントは、dumpbin の MSDN エントリにあります (実際には、私が覚えていたよりもはるかに優れています/disasm。特に、フラグについてあまり情報がなかったことに腹を立てていたのかもしれません)。の有用性dumpbin /?-- それほど多くの情報は得られないかもしれませんが、少なくとも画面上で一度にすべてを見ることができます。

于 2010-11-27T19:36:17.583 に答える