11

私はサードパーティのフレームワークを使用していますが、コードがかなり悪く、理解できない例外が発生しています。.NET Reflectorを使用して逆コンパイルできましたが、現在Deblectorを使用してデバッグしようとしていますが、ブレークポイント セットを取得する方法さえわかりません。このツールのドキュメントがないのはなぜですか?

それを使用する方法については何もありません。組み込みのヘルプは、コマンドのリストを提供するだけであり、それらは標準のデバッガー コマンドであるため、私はうまく理解しています...しかし、それを機能させる方法がわからないので、コードをステップ実行することができます。変数も調べます。

私は長い間グーグルで検索してきましたが、このツールの素晴らしさを伝えるブログしか見つかりません。まあ、それをうまく機能させることができれば、かなりクールだと思います。ドキュメントはどこにありますか、またはブレークポイントを設定するにはどうすればよいですか?

プロセスにアタッチすることはできますが、一時停止などはできません。そのオプションを有効にしていても、例外が発生しても壊れません。

真剣に... ドキュメントを作成する必要があります。Google がアクセスできる場所に投稿します。

4

2 に答える 2

8

多分これはあなたを助けるでしょう:

まず、 http://www.codeplex.com/deblector の DeblectorAddin-1.01-Alpha を使用してます(古いバージョンでもこのように機能するかどうかはわかりません) 。

このバージョンでは、次の手順で非常に簡単です。

  • プロセスにアタッチする

    • コマンドラインで a[ttach] コマンドを使用: a < pid> .
    • ツールバーのアタッチ ボタンを使用します (歯車が表示されたウィンドウ)。
  • アタッチが成功した場合 (これはコンソールに表示され、[ツール] -> [ディブレクター] でアクティブ化されます)、参照されているすべてのアセンブリが読み込まれます。

  • ブレークポイントの設定 (ブレークポイントを設定するには、プログラムを停止しておく必要があります):

    • b[reak]コマンドを使用します: 例: b <Namespace.Class.Function> -ヘルプ bを使用すると、さらに多くのオプションを使用できます。
    • もっと簡単に: Break ボタン (またはF9) を使用して、Debletor ILビューで行を選択します。

追加の使用上の注意:

Debletor コマンドライン:
現在プロセスにアタッチされて実行中の場合、コマンド ラインは応答しません。最初に停止する必要があります。そうしないと、適切に応答しません。

64 ビット プラットフォーム
の場合: アプリケーションは 32 ビット アプリケーションとして実行するように設定する必要があります。そうしないと、アプリケーションに接続できません。

Visual Studio の場合: [プロジェクト] -> [プロパティ] -> [ビルド プラットフォーム] ターゲット: x86

corflagsツールを使用する場合: これは、Visual Studio と共にインストールする必要があります (Visual Studio コマンド プロンプトを使用します)。

 To set 32-bit mode: corflags <ProgramName> /32BIT+ 
 To unset it:        corflags <ProgramName> /32BIT-

プロセス ID を見つけて、プログラムが 32 ビット モードまたは 64 ビット モードで実行されているかどうかを確認するには、 Process
Explorerが非常に役立ちます。

于 2009-04-18T15:29:23.777 に答える
0

今、ReflectorProがあります。これはまさにそれを行います。管理対象アセンブリをC#またはVB.NETに逆コンパイルし、必要なPDBを作成します。次に、ブレークポイントを設定して、任意の管理対象アセンブリにステップインできます。

http://www.red-gate.com/products/reflector/walkthrough.htm

于 2010-07-05T10:03:09.070 に答える