Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Hiermee opent u de foutopsporingsgegevens die aan het bestand zijn gekoppeld en bereidt u deze .exe/.dll voor.
Syntaxis
HRESULT loadDataFromCodeViewInfo (
LPCOLESTR executable,
LPCOLESTR searchPath,
DWORD cbCvInfo,
BYTE* pbCvInfo,
IUnknown* pCallback
);
Parameterwaarden
uitvoerbaar
[in] Pad naar het .exe of .dll bestand.
searchPath
[in] Alternatieve paden om te zoeken naar foutopsporingsgegevens. Meerdere paden moeten door puntkomma's worden gescheiden. Paden kunnen een volgpad \bevatten.
cbCvInfo
[in] De grootte in bytes van de pbCvInfo parameter.
pbCvInfo
[in] De alternatieve informatie over de foutopsporingskoptekstweergave (om te vervangen wat normaal is gelezen uit de IMAGE_DEBUG_DIRECTORY van het uitvoerbare bestand). Alleen RSDS- of NB10-headers worden ondersteund.
pCallback
[in] Een IUnknown interface voor een object dat ondersteuning biedt voor een callback-interface voor foutopsporing, zoals de IDiaLoadCallback, IDiaLoadCallback2, de IDiaReadExeAtOffsetCallbacken/of de interfaces IDiaReadExeAtRVACallback .
Retourwaarde
Als dit lukt, wordt S_OKgeretourneerd; retourneert anders een foutcode. In de volgende tabel ziet u enkele mogelijke foutcodes voor deze methode.
| Waarde | Beschrijving |
|---|---|
E_PDB_NOT_FOUND |
Kan het bestand niet openen of het bestand heeft een ongeldige indeling. |
E_PDB_FORMAT |
Er is geprobeerd toegang te krijgen tot een bestand met een niet-ondersteunde indeling. |
E_PDB_INVALID_SIG |
De handtekening komt niet overeen. |
E_PDB_INVALID_AGE |
Leeftijd komt niet overeen. |
E_INVALIDARG |
Ongeldige parameter. |
E_UNEXPECTED |
De gegevensbron is al voorbereid. |
Opmerkingen
De codeweergave-informatie, in IMAGE_DEBUG_TYPE_CODEVIEW indeling, geeft de bijbehorende locatie voor foutopsporingsgegevens een naam, evenals de velden voor ondertekening en leeftijd waarmee moet worden vergeleken.
Als u foutopsporingsgegevens laadt vanaf een symboolserver, moet symsrv.dll aanwezig zijn in dezelfde map waarin de toepassing of msdia140.dll van de gebruiker is geïnstalleerd, of moet deze aanwezig zijn in de systeemmap.
Deze methode leest de opgegeven foutopsporingsheader en zoekt en bereidt vervolgens de foutopsporingsgegevens voor. De voortgang van de zoekopdracht kan eventueel worden gerapporteerd en beheerd via callbacks. De wordt bijvoorbeeld IDiaLoadCallback::NotifyDebugDir aangeroepen wanneer de IDiaDataSource::loadDataForExe methode een foutopsporingsmap vindt en verwerkt.
Met IDiaReadExeAtOffsetCallback de en IDiaReadExeAtRVACallback interfaces kan de clienttoepassing alternatieve methoden bieden voor het lezen van gegevens uit het uitvoerbare bestand wanneer het bestand niet rechtstreeks kan worden geopend via standaardbestand-I/O.
Gebruik de .pdb methode om een IDiaDataSource::loadDataFromPdb bestand zonder validatie te laden.
Gebruik de IDiaDataSource::loadAndValidateDataFromPdb methode om het PDB-bestand te valideren op basis van specifieke criteria.
Als u een PDB-bestand rechtstreeks vanuit het geheugen wilt laden, gebruikt u de IDiaDataSource::loadDataFromIStream methode.
Als u een PDB-bestand wilt valideren zonder het te laden, gebruikt u de methode IDiaDataSourceEx::ValidatePdb .
Voorbeeld
BYTE pbCodeViewInfo[] = {
...
};
HRESULT hr = pSource->loadDataFromCodeViewInfo( L"myprog.exe", L".\debug", sizeof(pbCodeViewInfo), pbCodeViewInfo, nullptr);
if (FAILED(hr))
{
// Report error
}