我正在尝试远程调试C#程序。连接到主机没问题,我可以看到在该计算机上运行的所有进程,并且可以连接到msvsmon.exe。

但是,我要调试的程序在启动时立即崩溃,使我没有时间将自己附加到该程序上。通过远程位置启动有问题的调试可执行文件也无济于事。如何在崩溃前附加调试器?

最佳答案

启动时崩溃可能是由于缺少依赖项造成的。在启动应用程序之前,请运行fuslogvw.exe,以查看绑定(bind)操作是否失败。

如果这样做没有帮助,通常将诊断日志记录到位是一个好习惯。您可以使用专用的日志记录库,例如log4net,或者至少应该使用通过System.Diagnostics.Trace进行记录的最简单形式。您可以通过在app.config中配置跟踪监听器或使用第三方工具(例如Sysinternals的调试器或 DebugView )来监听跟踪消息。

如果您确实想附加调试器,则可以通过编程方式插入断点:

System.Diagnostics.Debugger.Break();

我还没有检查过远程调试器如何工作,但是作为最后的选择,您可以让应用程序休眠足够长的时间,以允许您连接调试器:
System.Threading.Thread.Sleep(30000);

10-06 06:44
查看更多