3
我想知道是否可以使用WinDbg來調用導致分配句柄的調用堆棧。處理分配在哪裏?
例如:
#include <windows.h>
#include <conio.h>
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cout << "Press ENTER to leak handles." << endl;
_getch();
cout << "Leaking handles" << endl;
for (int i = 0; i < 100; ++i)
{
HANDLE h = CreateEvent(NULL, FALSE, FALSE, NULL);
if (h != NULL)
{
cout << ".";
}
}
cout << "Handles leaked. Press ENTER to exit." << endl;
_getch();
return 0;
}
了在WinDbg中構建這個樣本並進行焙燒,之後是有可能得到的是分配的句柄調用堆棧,該線以上的樣品中:
HANDLE h = CreateEvent(NULL, FALSE, FALSE, NULL);
我正在撥打!handle
命令,但目前爲止還沒有進展。
這與處理泄漏分析有關。我知道!htrace -enable
和!htrace -diff
,但這是一個不同的使用場景(除非有某種方法可以組合或其他使用向量,請提供信息)。