Domanda

Come parte di un profiler JavaScript per IE 6/7 avevo bisogno di caricare un debugger personalizzato che avevo creato in IE.Ho funzionato bene su XP, ma non sono riuscito a farlo funzionare su Vista (storia completa qui: http://damianblog.com/2008/09/09/tracejs-v2-rip/).

La chiamata a GetProviderProcessData non riesce su Vista.Qualcuno ha dei suggerimenti?

Grazie, 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;
}
È stato utile?

Soluzione

Sarebbe utile sapere qual è stato il risultato dell'errore.

Possibili problemi che mi vengono in mente:

Se ti viene negata l'autorizzazione, molto probabilmente ti mancano alcune richieste Privilegio nel tuo ACL.Quelli nuovi a volte non sono ben documentati, controlla le ultime intestazioni dell'SDK della piattaforma per vedere se ce ne sono di nuovi ancora disponibili.È possibile che in Vista il privilegio non sia più assegnato di default alla tua ACL.

Se ricevi una sorta di errore di tipo Non trovato, potrebbe trattarsi di un problema a 32 bit/64 bit.L'API di debug potrebbe essere disponibile solo in COM a 64 bit su Vista 64.L'interoperabilità a 32 bit/64 bit può creare molta confusione.

Altri suggerimenti

Non ho familiarità con queste interfacce, ma in caso di errori imprevisti in Vista potrebbe essere necessario superare il prompt dell'UAC.Hai provato ad avviare il debugger con privilegi di amministratore?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top