c#强制调试模式编程
本文关键字:模式 编程 调试 | 更新日期: 2023-09-27 18:08:49
别管为什么要这样做,我只是想知道这是否可以做到。
这是我不能工作的代码:
if (!Debugger.IsAttached)
{
try
{
Debugger.Launch();
while (!Debugger.IsAttached)
{
Thread.Sleep(1000);
}
}
catch (System.Security.SecurityException e)
{
Console.WriteLine("exception " + e.Message);
}
}
基本上我很想知道如何使用Debugger.Launch()
方法
调试器。启动将启动调试器,如果已经附加了调试器,则不执行任何操作。我相信这不是断点。debug . break()实际上会中断。
调用Debugger.Launch()可能会根据机器的不同做不同的事情,例如是否安装了Visual Studio等。
请参阅相关技术文章:如何:自动启动调试器
它将启动并向进程附加一个调试器。当然,不要在生产中使用它。我认为这是可能的用途
我认为你误解了Debugger.Launch()
的作用。它的功能类似于硬编码的断点。
当你的程序到达Debugger.Launch()
时,即时调试窗口将显示(假设你在机器上安装了Visual Studio)。这时,你的程序就停止了——它不再继续运行了。
如果您选择一个VS实例,它将启动,并将在Debugger.Launch()
所在行停止,就好像您在那里遇到了一个断点一样。
所以没有必要进行while()循环。只要你想要停止程序来查看一些东西,你就可以调用Debugger.Launch()
。
但是Debugger.Launch()
的效用是值得怀疑的。您可以更容易地使用断点,并且有了断点,就不会有意外地将它留在成品中的危险。