如何在 C# 中使用 DebugBreak()?

发布于 2024-07-04 19:15:53 字数 53 浏览 4 评论 0原文

语法是什么以及需要导入哪个名称空间/类? 如果可能的话给我示例代码。 这会有很大的帮助。

What is the syntax and which namespace/class needs to be imported? Give me sample code if possible. It would be of great help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

心安伴我暖 2024-07-11 19:15:53

将以下内容放在您需要的地方:

System.Diagnostics.Debugger.Break();

Put the following where you need it:

System.Diagnostics.Debugger.Break();
夜血缘 2024-07-11 19:15:53

@Philip Rieck 和 @John 的答案略有不同。

约翰的...

#if DEBUG
  System.Diagnostics.Debugger.Break();
#endif

仅当使用 DEBUG 条件编译符号集进行编译时才有效。

菲利普的回答...

if( Debugger.IsAttached) //or if(!Debugger.IsAttached)
{
  Debugger.Break();
}

适用于任何调试器,因此您也会给任何黑客带来一点恐惧。

另请注意它可能抛出的 SecurityException,因此不要让该代码泄露出去。

另一个不去的理由...

如果没有附加调试器,系统会询问用户是否要附加调试器
调试器。 如果用户同意,调试器就会启动。 如果调试器是
连接后,调试器会收到用户断点事件的信号,并且
调试器暂停进程的执行,就像调试器一样
已命中断点。

来自 https://msdn .microsoft.com/en-us/library/system.diagnostics.debugger.break(v=vs.110).aspx

The answers from @Philip Rieck and @John are subtly different.

John's ...

#if DEBUG
  System.Diagnostics.Debugger.Break();
#endif

only works if you compiled with the DEBUG conditional compilation symbol set.

Phillip's answer ...

if( Debugger.IsAttached) //or if(!Debugger.IsAttached)
{
  Debugger.Break();
}

will work for any debugger so you will give any hackers a bit of a fright too.

Also take note of SecurityException it can throw so don't let that code out into the wild.

Another reason no to ...

If no debugger is attached, users are asked if they want to attach a
debugger. If users say yes, the debugger is started. If a debugger is
attached, the debugger is signaled with a user breakpoint event, and
the debugger suspends execution of the process just as if a debugger
breakpoint had been hit.

from https://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.break(v=vs.110).aspx

長街聽風 2024-07-11 19:15:53

您可以使用 System.Diagnostics.Debugger.Break() 在特定位置进行中断。 这在调试服务等情况下很有帮助。

You can use System.Diagnostics.Debugger.Break() to break in a specific place. This can help in situations like debugging a service.

情绪操控生活 2024-07-11 19:15:53

我还喜欢检查调试器是否已附加 - 如果在没有调试器时调用 Debugger.Break,它会提示用户是否要附加调试器。 根据您想要的行为,您可能希望仅在(或未附加)已附加时调用 Debugger.Break()

using System.Diagnostics;

//.... in the method:

if( Debugger.IsAttached) //or if(!Debugger.IsAttached)
{
  Debugger.Break();
}

I also like to check to see if the debugger is attached - if you call Debugger.Break when there is no debugger, it will prompt the user if they want to attach one. Depending on the behavior you want, you may want to call Debugger.Break() only if (or if not) one is already attached

using System.Diagnostics;

//.... in the method:

if( Debugger.IsAttached) //or if(!Debugger.IsAttached)
{
  Debugger.Break();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文