どのように私は、.NET JITerによって生成されたマシンコードの逆アセンブルを見ていますか?
-
09-09-2019 - |
質問
私は、.NET JITerによって生成されたマシンコードの逆アセンブリを参照するにはどうすればよいですか?ショー解体ウィンドウ]メニューオプションが見つかりすべきところではありません。でも、そのためのツールバーボタンは無効状態になっています。私は解体が実際に見ることができます正しくリコールが、1つは、いくつかのトリックに頼らなければならない場合は、残念ながら私はそのトリックが何だったか覚えていません。誰かがここにいくつかのポインタを提供していただけますか?
デバッグ環境:VS2008(私はあなたがWinDbgの中に多くの苦痛なしに解体し、いくつかのデバッガ拡張子(SOS.dllを見ることができますね)うーん、今私は、同じDLLがまた私がチェックし、戻って取得してみましょうVS2008で使用することができることと思いますか?あなたに。私が間違っているなら、私を修正すること自由に感じてください。)
解決 2
こんにちは、残念ながらショーデバッグウィンドウコマンドはまだ機能していないが、あなたはデバッグにSOS.dllと呼ばれるデバッガの拡張子dllファイルとによって得ることができます/ここ.NETコードを逆アセンブルいくつかのリンク(これはVS2008とのWinDbgで動作します注意してください)です。 ..
他のヒント
逆アセンブリ]ウィンドウは、VS2008 Team Systemのデベロッパー版でのC#プロジェクトで私のために正常に動作してます。
実際に - 私は、フレームワークのコードにステップすることはできません - 私は期待していたとして働いていない一つのことがあります。たぶん私は知らないが、私はそれをやらせるかもしれないいくつかの設定のどこかがあります。しかし、私は自分のコードだけで罰金のための解体throiughステップ実行することができます。
あなたはVS2008 Expressを使用していますか?たぶんそれは、いくつかの制限があります。
常にありcordbgだ(む〜!)。
デバッガの下で実行すると、もちろん、JITerは非最適化コードを生成します。あなたはこれを回避するために介してジャンプすることができますいくつかのフープがあるかもしれません - 。JITは、あなたが見てみたいものは何でものためにその仕事をした後のプロセスにアタッチのように
私のために正常に動作しているようです。あなたは、アドレスレベルのデバッグが有効になっていますか? ツール|オプション|デバッグ|一般的な|アドレスレベルのデバッグを有効にしますか?
デバッグに行き、dissassemblyウィンドウを取得するには| Windowsの| Dissassembly(私はC#の開発者プロファイルを使用しています)。
あるいは、コマンドウィンドウで、タイプDebug.Dissassembly