【发布时间】:2014-07-22 16:15:03
【问题描述】:
我试图在调试两个相互通信的进程时避免无休止的击键和鼠标点击。
问题:那么给定我创建的外部 System.Diagnostics.Process 实例,我如何以编程方式(即外部)将调试器附加到它?
我查看了 System.Diagnostics.Debugger 类,但它似乎具有仅将调试器附加到当前正在运行的进程而不是外部进程的方法。
感谢您的帮助。
【问题讨论】:
我试图在调试两个相互通信的进程时避免无休止的击键和鼠标点击。
问题:那么给定我创建的外部 System.Diagnostics.Process 实例,我如何以编程方式(即外部)将调试器附加到它?
我查看了 System.Diagnostics.Debugger 类,但它似乎具有仅将调试器附加到当前正在运行的进程而不是外部进程的方法。
感谢您的帮助。
【问题讨论】:
如果您可以在第二个进程中编辑代码,请从那里调用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");
}
}
【讨论】: