今天我遇到了一个问题,我需要远程调试一个程序。该程序是从另一个系统启动的,所以我实在没有机会在命令行上与它进行交互。虽然我可以很容易地改变它的来源。如何等待,直到连接远程.NET调试器
我需要发生的是程序正常启动,然后等待我用调试器附加到它。我无法想出办法让我开心。我确实发现了这个错误,但没有调试器的帮助。
while(true) { }
不停过程活着,然后我可以“设置下一条语句”使用调试器,但它似乎尴尬和粗鲁。
Console.ReadLine();
看起来很怪异类型,因为那里本来就不是一个控制台我按在进入。 (它也没有工作,设置下一个语句,然后运行将带您回到ReadLine()等待)。
那么,我可以在.NET/CLR/C#程序中插入什么样的代码,在这里等待,直到我可以附加一个调试器“?
感谢您的回答。我知道必须有一种方法来检查代码是否附加了调试器,这是我从搜索中获得的第一个/最好的命中。 – 2009-09-30 21:28:25
使用if替换while以及使用assert替换睡眠可能是更好的解决方案,因为如果您不想每次都附加调试器,它将允许您轻松地继续。 – Luke 2011-08-13 15:30:39
是否可以使用`Debugger`中的某种事件并等待某个`AutoResetEvent`直到引发IsAttached事件? – Pixar 2015-08-27 11:59:15