Pergunta

Como parte de um JavaScript Profiler para IE 6/7, precisei carregar um depurador personalizado que criei no IE.Eu fiz isso funcionar bem no XP, mas não consegui fazê-lo funcionar no Vista (história completa aqui: http://damianblog.com/2008/09/09/tracejs-v2-rip/).

A chamada para GetProviderProcessData está falhando no Vista.Alguém tem alguma sugestão?

Obrigado, Damian

// Create the MsProgramProvider
IDebugProgramProvider2* pIDebugProgramProvider2 = 0;
HRESULT st = CoCreateInstance(CLSID_MsProgramProvider, 0, CLSCTX_ALL, IID_IDebugProgramProvider2, (void**)&pIDebugProgramProvider2);
if(st != S_OK) {
    return st;
}

// Get the IDebugProgramNode2 instances running in this process
AD_PROCESS_ID processID;
processID.ProcessId.dwProcessId = GetCurrentProcessId();
processID.ProcessIdType = AD_PROCESS_ID_SYSTEM;

CONST_GUID_ARRAY engineFilter;
engineFilter.dwCount = 0;

PROVIDER_PROCESS_DATA processData;

st = pIDebugProgramProvider2->GetProviderProcessData(PFLAG_GET_PROGRAM_NODES|PFLAG_DEBUGGEE, 0, processID, engineFilter, &processData);
if(st != S_OK) {
    ShowError(L"GPPD Failed", st);
    pIDebugProgramProvider2->Release();
    return st;
}
Foi útil?

Solução

Ajudaria saber qual foi o resultado do erro.

Possíveis problemas em que consigo pensar:

Se sua permissão for negada, provavelmente você está perdendo alguns requisitos Privilégio na sua ACL.Às vezes, os novos não são bem documentados. Verifique os cabeçalhos mais recentes do Platform SDK para ver se há algum novo que ainda esteja disponível.Pode ser que no Vista o Privilégio não seja mais atribuído como padrão à sua ACL.

Se você estiver recebendo algum tipo de erro do tipo Não encontrado, pode ser um problema de 32 bits/64 bits.Sua API de depuração pode estar disponível apenas no COM de 64 bits no Vista 64.A interoperação de 32 bits/64 bits pode ser muito confusa.

Outras dicas

Não estou familiarizado com essas interfaces, mas falhas inesperadas no Vista podem exigir a passagem de um prompt do UAC.Você tentou iniciar o depurador com privilégios de administrador?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top