IDiaDataSource::loadDataFromCodeViewInfo

Öppnar och förbereder de felsökningsdata som är associerade med .exe/.dll filen.

Syntax

HRESULT loadDataFromCodeViewInfo (
   LPCOLESTR executable,
   LPCOLESTR searchPath,
   DWORD     cbCvInfo,
   BYTE*     pbCvInfo,
   IUnknown* pCallback
);

Parameterar

genomförbar

[i] Sökväg till .exe filen eller .dll .

searchPath

[i] Alternativa sökvägar för att söka efter felsökningsdata. Flera sökvägar ska vara semikolonavgränsade. Sökvägar kan innehålla en avslutande \.

cbCvInfo

[i] Storleken i byte för parametern pbCvInfo .

pbCvInfo

[i] Den alternativa informationen om sidhuvudkod för felsökning (för att ersätta vad som är normal läsning från den körbara filens IMAGE_DEBUG_DIRECTORY). Endast RSDS- eller NB10-huvuden stöds.

pCallback

[i] Ett IUnknown gränssnitt för ett objekt som stöder ett felsökningsgränssnitt för motringning, till exempel gränssnitten IDiaLoadCallback, IDiaLoadCallback2, IDiaReadExeAtOffsetCallback, och/eller "IDiaReadExeAtRVACallback ".

Returvärde

Om det lyckas returnerar S_OK; annars returneras en felkod. I följande tabell visas några av de möjliga felkoderna för den här metoden.

Värde Beskrivning
E_PDB_NOT_FOUND Det gick inte att öppna filen eller så har filen ett ogiltigt format.
E_PDB_FORMAT Försökte komma åt en fil med ett format som inte stöds.
E_PDB_INVALID_SIG Signaturen matchar inte.
E_PDB_INVALID_AGE Ålder matchar inte.
E_INVALIDARG Ogiltig parameter.
E_UNEXPECTED Datakällan har redan förberetts.

Anmärkningar

Kodvisningsinformationen namnger i IMAGE_DEBUG_TYPE_CODEVIEW format den associerade platsen för felsökningsdata samt anger de tecken- och åldersfält som ska matchas mot.

Om du läser in felsökningsdata från en symbolserver måste symsrv.dll finnas i samma katalog där användarens program eller msdia140.dll är installerat, eller så måste det finnas i systemkatalogen.

Den här metoden läser det angivna felsökningshuvudet och söker sedan efter och förbereder felsökningsdata. Förloppet för sökningen kan eventuellt rapporteras och kontrolleras via återanrop. Till exempel IDiaLoadCallback::NotifyDebugDir anropas när IDiaDataSource::loadDataForExe metoden hittar och bearbetar en felsökningskatalog.

Med IDiaReadExeAtOffsetCallback gränssnitten och IDiaReadExeAtRVACallback kan klientprogrammet tillhandahålla alternativa metoder för att läsa data från den körbara filen när filen inte kan nås direkt via standardfil-I/O.

Om du vill läsa in en .pdb fil utan validering använder du IDiaDataSource::loadDataFromPdb metoden.

Använd metoden för att verifiera .pdb-filen mot specifika kriterier IDiaDataSource::loadAndValidateDataFromPdb .

Om du vill läsa in en .pdb-fil direkt från minnet använder du IDiaDataSource::loadDataFromIStream metoden .

Om du vill verifiera en .pdb-fil utan att läsa in den använder du metoden IDiaDataSourceEx::ValidatePdb .

Exempel

BYTE pbCodeViewInfo[] = {
  ...
};

HRESULT hr = pSource->loadDataFromCodeViewInfo( L"myprog.exe", L".\debug", sizeof(pbCodeViewInfo), pbCodeViewInfo, nullptr);
if (FAILED(hr))
{
    // Report error
}

Se även