我通过将“-d”作为命令行参数传递给我的控制台应用程序来附加调试器。这会导致调用以下代码;
bool attachedDebugger = false;
try
{
attachedDebugger = System.Diagnostics.Debugger.Launch();
}
catch (Exception) { }
finally
{
Console.WriteLine(attachedDebugger ? "Debugger Attached" : "Failed to attach debugger");
}
弹出 Visual Studio 2010 JIT 窗口后,我有时会改变主意,不想调试,所以我会关闭该对话框。如果我不附加一个,那么应用程序会立即退出,而不会向控制台写入任何内容。
我知道这有点边缘用例,如果我不想调试,我应该从命令行中删除“-d”。我提出问题的原因是我希望了解正在发生的事情。
我认为 finally block 总是被调用,此外,如果我们未能附加调试器,我希望我的应用程序能够继续。
- 为什么控制台没有打印任何内容 如果我拒绝附加调试器?
- 是否调用
Debugger.Launch()
System.Exit
附加失败?
编辑 谢谢@Moo-Juice 我现在知道 false
的返回值意味着已经附加了调试器,但上述问题仍未解决。
最佳答案
关于C# - 附加调试器失败后如何继续 - System.Diagnostics.Debugger.Launch(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4224163/