如何debugging挂起的WPF应用程序?

我有一个挂在一个用户的机器上的WPF应用程序。 其他用户不受影响。 该应用程序挂起运行本身的开发环境,同时在debugging运行。 这个问题可以被可靠地重现,只要用户试图去做就会挂起。 在debugging下运行没有线索,没有任何exception,应用程序只是停止响应。

我有什么select来debugging呢? 是否有任何外部工具 – 像sysinternals套件的东西 – 可以帮助? 是否有任何Visual Studiodebugging器技巧或技巧,可能会提供更多的信息?

Solutions Collecting From Web of "如何debugging挂起的WPF应用程序?"

是的,您可以使用mdbg.exe附加到挂起进程(PID),当您在那里时按w查看堆栈跟踪。

顺便说一句。 挂起可能是由损坏的字体缓存引起的,所以在尝试mdbg之前,请尝试查找有关如何清除WPF字体缓存的说明。

由于这只是一般描述的一般描述:

  • 在调试器中点击“暂停”并查看它挂起的位置
  • 将系统+驱动程序修补到最新的“稳定级别”
  • 检查您正在使用的任何第三方程序集
    也许在版本和/或配置和/或依赖性方面存在一些问题
  • 使用sysinternal processmon来检查应用程序(访问哪些文件等)
  • 检查网络连接和配置(代理,DNS,防火墙等),如果您的应用程序使用任何东西(如网络共享或数据库或互联网接入等)
  • 检查内存(也许机器是疯狂的分页…)
  • 如果您的应用程序是多线程的,那么可能会出现异常“潜伏”=>尝试添加全局处理程序以获取线索(请参见此处 )
  • 字体问题可能是另一个问题来解释…看到这里
  • 检查防病毒等=>这些有时可以创造奇怪的行为

以上的任何事情都可以给你一个线索是怎么回事。

检查您的硬件加速为机器。 记住,WPF使用直接硬件访问进行渲染。 您可以尝试减少加速,更新视频驱动程序等。

这是什么操作系统下运行? 如果Windows 7 – 启用Aero?