当我在WinDbg中使用WinDbg来调试句柄泄漏时,我得到了许多没有显示调用堆栈的句柄(可能是那些正在泄漏的句柄):
这样做的原因是什么,我还需要哪些选项来进一步调试呢?
Handle = 0x000273e4 - OPEN
Thread ID = 0x00001190, Process ID = 0x0000114c
--------------------------------------
Handle = 0x000273e0 - OPEN
Thread ID = 0x00001190, Process ID = 0x0000114c
--------------------------------------
Handle = 0x000273dc - OPEN
Thread ID = 0x00001190, Process ID = 0x0000114c
--------------------------------------
Handle = 0x000273d8 - OPEN
Thread ID = 0x00001190, Process ID = 0x0000114c
--------------------------------------
Handle = 0x000273d4 - OPEN
Thread ID = 0x00001190, Process ID = 0x0000114c
--------------------------------------
Handle = 0x000273d0 - OPEN
Thread ID = 0x00001190, Process ID = 0x0000114c
--------------------------------------
Handle = 0x000273cc - OPEN
Thread ID = 0x00001190, Process ID = 0x0000114c
--------------------------------------
Handle = 0x000273c8 - OPEN
Thread ID = 0x00001190, Process ID = 0x0000114c
--------------------------------------
Handle = 0x000273c4 - OPEN
Thread ID = 0x00001190, Process ID = 0x0000114c
--------------------------------------
Handle = 0x000273c0 - OPEN
Thread ID = 0x00001190, Process ID = 0x0000114c
--------------------------------------
Handle = 0x000273bc - OPEN
Thread ID = 0x00001190, Process ID = 0x0000114c
--------------------------------------
Handle = 0x000273b8 - OPEN
Thread ID = 0x00001190, Process ID = 0x0000114c
--------------------------------------
Handle = 0x000273b4 - OPEN
Thread ID = 0x00001190, Process ID = 0x0000114c
--------------------------------------
Handle = 0x000273b0 - OPEN
Thread ID = 0x00001190, Process ID = 0x0000114c
--------------------------------------
Handle = 0x000273ac - OPEN
Thread ID = 0x00001190, Process ID = 0x0000114c
--------------------------------------
Handle = 0x000273a8 - OPEN
Thread ID = 0x00001190, Process ID = 0x0000114c
--------------------------------------
Handle = 0x000273a4 - OPEN
Thread ID = 0x00001190, Process ID = 0x0000114c
--------------------------------------更新:句柄泄漏似乎取决于图形驱动程序或图形卡。当我使用任何形式的WPF时,它就会开始泄漏,它只会在某些Windows系统上用特定的图形卡/驱动程序泄漏。
发布于 2011-10-21 21:26:15
调用在内核模式下由ZwOpenProcess例程(http://msdn.microsoft.com/en-us/library/windows/hardware/ff567022(v=vs.85).aspx)执行,而不是在ZwClose调用之后执行。然后把手漏了。您看不到这些调用堆栈,因为它们只有在从用户模式(OpenProcess / CloseHandle)执行调用时才可用。
在XP SP3上,似乎很难找到罪魁祸首。解决方案是使用在操作系统中构建的“对象引用跟踪”功能,但是这条路径是由问题铺就的(进一步的引用请参见http://www.osronline.com/showthread.cfm?link=198302 )。因为您发现这个问题只有在某个特定的显卡出现时才会出现,所以您可以尝试与供应商联系或检查驱动程序的更新版本。
https://stackoverflow.com/questions/6031253
复制相似问题