如何处理可能导致我的应用程序进入挂起状态的事件

如何处理可能导致我的应用程序进入挂起状态的事件

本文介绍了如何处理可能导致我的应用程序进入挂起状态的事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在对应用程序挂起问题进行转储文件分析.这是堆栈跟踪中有趣的一行.

I am doing a dump file analyis for an application hang problem. Here is one interesting line from the stack trace.

0bc2f3e4 75a8bd1e 0bc2f298 0bc2f30c 00000001 ntdll!KiFastSystemCallRet
0bc2f32a 6a393c42 00000001 7ffdf000 00000001 kernel32!WaitForMultipleObjectsEx+0x8e

查看 WaitForMultipleObjectExMSDN中的描述,第二个参数是const HANDLE *lpHandles.这让我觉得我应该能够做一个 !handle 7ffdf000 来找出它在等待哪个事件,但是当我这样做时,我得到了关注

Looking at WaitForMultipleObjectEx description in MSDN, the second parameter is const HANDLE *lpHandles. This make me thing that I should be able to do a !handle 7ffdf000 to figure out which event is it waiting for but when I do that, I get following

检索类型时出现类型错误

Type Error retrieving type

任何想法我在这里可能做错了什么,或者关于获取有关挂起原因的更多详细信息的任何提示?

Any ideas what I may be doing wrong here or any tips on getting more details on cause of hang?

推荐答案

第二个参数是指向 HANDLE 数组的指针.在您的情况下,由于数组的大小为 1,您应该能够使用 command
转储句柄!handle poi 7ffdf000

The second parameter is pointer to array of HANDLE's. In your case, since the size of array is 1, you should be able to dump the handle using command
!handle poi 7ffdf000

这篇关于如何处理可能导致我的应用程序进入挂起状态的事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-02 02:38