c# - 使用 Ping 时蓝屏

标签 c# visual-studio debugging callback bsod

我遇到了 BSODon 在 ping 中间结束调试的错误。

我有几种方法可以在我的 (wpf) 应用程序(我连续 ping)中禁用它,但有时我忘记这样做并出现 BSOD。

我想通过更改全局 AllowRealPinging 变量并在退出调试器之前在回调中休眠 2 秒来解决这个问题,这样我就不会出现 BSOD。

最佳答案

这是 Windows 7 中的一个已知错误,当​​您终止进程时,您将在 tcpip.sys 中获得错误检查代码为 0x76、PROCESS_HAS_LOCKED_PAGES 的蓝屏死机。最相关反馈文章is here .也包含在 this SO question 中.那里没有很好的答案,唯一已知的解决方法是回退到 4.0 之前的 .NET 版本,它使用另一个不会触发驱动程序错误的 winapi 函数。

在调试时避免 ping 无疑是避免此问题的最佳方法。你想要的方法行不通,你的程序在遇到断点时完全卡住,当你停止调试时咔嚓一声。

最简单的方法是在连接调试器的特定情况下,首先不开始 ping。使用 System.Diagnostic.Debugger.IsAttached 属性在您的代码中检测到这一点。

关于c# - 使用 Ping 时蓝屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17756824/

相关文章:

delphi - 用于调试器的单独鼠标

c# - 从模型中的 IEnumerable 填充下拉列表,设置选定值

c# - 如何阻止管理员访问 ASP .NET MVC 3 中的其他页面

c# - 如何从结构的实例方法创建一个开放的委托(delegate)?

c++ - 为 rapidjson readBuffer 设置合适的大小

c# - 尝试转换 listbox.selecteditem 时为空引用?

c# - 如何在 Visual Studio 2010 中调试从另一个进程启动的 C# .NET 应用程序

c# - 在 C# 中查询 netsh

visual-studio - 无法在 Visual Studio 中提交对 GitHub 的更改

google-chrome - 为什么我的调试器在视觉上停在错误的行?