5

ILspy を使用して dll をデバッグしたいのですが、pic のように:

ここに画像の説明を入力

しかし、それは2つのプロセスしか表示できません:

ここに画像の説明を入力

しかし、vs2010 では、より多くのプロセスをアタッチできます。 ここに画像の説明を入力

ILspy で w3wp.exe を表示するには? 誰が私を助けることができます?

4

3 に答える 3

5

ILSpy を管理者として実行すると、この問題が解決されました。

于 2013-02-20T21:55:04.913 に答える
3

ILSpyソースコード(ICSharpCode.ILSpy.Debugger.UI.AttachToProcessWindow)から:

    Process currentProcess = Process.GetCurrentProcess();
        foreach (Process process in Process.GetProcesses()) {
            try {
                if (process.HasExited) continue;
                // Prevent attaching to our own process.
                if (currentProcess.Id != process.Id) {
                    bool managed = false;
                    try {
                        var modules = process.Modules.Cast<ProcessModule>().Where(
                            m => m.ModuleName.StartsWith("mscor", StringComparison.OrdinalIgnoreCase));

                        managed = modules.Count() > 0;
                    } catch { }

                    if (managed) {
                        list.Add(new RunningProcess {
                                    ProcessId = process.Id,
                                    ProcessName = Path.GetFileName(process.MainModule.FileName),
                                    FileName = process.MainModule.FileName,
                                    WindowTitle = process.MainWindowTitle,
                                    Managed = "Managed",
                                    Process = process
                                 });
                    }
                }
            } catch (Win32Exception) {
                // Do nothing.
            }
        }

比較的簡単なようです...

これはプレビューソフトウェアであるため、プロセスがマネージコードを使用しているかどうかを判断するためのこのアルゴリズムに欠陥がある可能性があります。

ソースコードをダウンロードして変更するだけで、この問題を回避できる可能性があります

bool managed = false;

bool managed = true;

と再コンパイルします。

IIS7のフルバージョンがインストールされていないため、問題を再現することはできませんが、Visual Studio開発サーバーはILSpyで正常に表示されますが、表示されないため、同じ問題が発生することはないと思います。おそらく、上記のアルゴリズムを台無しにするあなたの環境について何か違うことがあります。

于 2012-04-22T04:21:31.070 に答える
3

32 ビット対 64 ビットも何らかの役割を果たしている可能性があります

于 2012-05-07T19:49:27.843 に答える