如何将调试器附加到System.Diagnostics.Process?

时间:2014-07-22 16:15:03

标签: c# .net

我正在尝试在调试两个彼此通信的进程时保存自己无休止的键击和鼠标单击。

问题:所以给定我创建的外部System.Diagnostics.Process实例,我如何以编程方式(即外部)将调试器附加到它?

我查看了System.Diagnostics.Debugger类,但它似乎只有将调试器附加到当前正在运行的进程的方法,而不是外部进程。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如果您可以在第二个流程中编辑代码,请从那里调用Debugger.Launch();

但是如果你不能:
假设您正在执行的文件是托管程序集,您可以创建一个首先提示您附加的包装程序集,然后启动实际的exe。

using System;
using System.Diagnostics;

class Program
{
    static void Main(string[] args)
    {
        Debugger.Launch();
        AppDomain.CurrentDomain.ExecuteAssembly(@"C:\\path\to\file.exe");
    }

}