使用Windbg收集句柄

时间:2012-05-05 08:48:53

标签: windbg handle

我正在使用Windbg sdk编写自己的调试器。调试器能够收集调试应用程序分配的所有句柄,以避免句柄泄漏。这是我的代码:

void zAdvancedDebugger::debugProc(){
    // Creating interfaces including m_dbgClient, m_dbgControl
    if(!createInterfaces()){
        printf("Failed to create debugging interfaces\r\n");
        return;
    }
    std::string strRealCmdLine="\"" + app + "\"  " + args;
    // Every thing's set up so start the app.
    if (( m_dbgClient->CreateProcess(0, (PSTR)strRealCmdLine.c_str(), DEBUG_PROCESS )) != S_OK)
        return ;
    // event loop
    while(true){
        if(m_dbgControl->WaitForEvent(DEBUG_WAIT_DEFAULT,INFINITE)!= S_OK)
            break;
    }
    HRESULT ret=m_dbgControl->Execute(
        DEBUG_OUTCTL_IGNORE,
        ".closehandle -a", // Close all handles allocated
        DEBUG_EXECUTE_NOT_LOGGED );
}

问题是:我无法执行命令“.closehandle -a”。每当我运行代码时,我总是得到“ret 0x80040205引发意外异常”。你能告诉我这有什么不对吗?

0 个答案:

没有答案