【问题标题】:how to use ILspy debug a dll?如何使用ILspy调试一个dll?
【发布时间】:2012-04-28 10:06:16
【问题描述】:

我想用 ILspy 调试一个 dll,如图:

但它只能显示两个进程:

但在 vs2010 中,我可以附加更多进程:

如何在 ILspy 中显示 w3wp.exe?谁能帮帮我?

【问题讨论】:

  • w3wp 有什么运气吗?和调试?
  • 这是什么版本?我在 2.4.0.1963 中没有看到调试菜单

标签: debugging process ilspy


【解决方案1】:

来自 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 中显示良好,而您的却没有.也许您的环境与上述算法有一些不同之处。

【讨论】:

    【解决方案2】:

    32 位与 64 位也可能发挥一些作用

    【讨论】:

      【解决方案3】:

      以管理员身份运行 ILSpy 为我解决了这个问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-31
        • 2013-11-06
        • 2022-12-05
        • 1970-01-01
        • 2023-03-17
        相关资源
        最近更新 更多