Megosztás:


IDiaDataSource::loadDataFromCodeViewInfo

Megnyitja és előkészíti a fájlhoz társított hibakeresési .exe/.dll adatokat.

Szemantika

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

Paraméterek

végrehajtható

[in] .exe A fájl elérési .dll útja.

searchPath

[in] Alternatív elérési utak a hibakeresési adatok kereséséhez. Több elérési utat kell pontosvesszőkkel tagolni. Az elérési utak záró elemet tartalmazhatnak \.

cbCvInfo

[in] A paraméter mérete bájtban pbCvInfo .

pbCvInfo

[in] A hibakeresési fejléckód nézetének információi (a végrehajtható IMAGE_DEBUG_DIRECTORY normál olvasási helyére). Csak RSDS- vagy NB10-fejlécek támogatottak.

pCallback

[in] Egy IUnknown olyan objektum felülete, amely támogatja a hibakeresési visszahívási felületet, például az IDiaLoadCallback, IDiaLoadCallback2a , a IDiaReadExeAtOffsetCallback, és/vagy az "IDiaReadExeAtRVACallback interfészeket".

Visszaadott érték

Ha sikeres, S_OK; ellenkező esetben egy hibakódot ad vissza. Az alábbi táblázat a metódus lehetséges hibakódjait mutatja be.

Érték Leírás
E_PDB_NOT_FOUND Nem sikerült megnyitni a fájlt, vagy a fájl formátuma érvénytelen.
E_PDB_FORMAT Nem támogatott formátumú fájlhoz próbált hozzáférni.
E_PDB_INVALID_SIG Az aláírás nem egyezik.
E_PDB_INVALID_AGE Az életkor nem egyezik.
E_INVALIDARG Érvénytelen paraméter.
E_UNEXPECTED Az adatforrás már elkészült.

Megjegyzések

A kódnézet információi IMAGE_DEBUG_TYPE_CODEVIEW formátumban elnevezik a kapcsolódó hibakeresési adathelyet, valamint megadja azoknak az előjel- és kormezőknek a megadását, amelyekhez igazodni kell.

Ha hibakeresési adatokat tölt be egy szimbólumkiszolgálóról, symsrv.dll ugyanabban a könyvtárban kell lennie, amelyben a felhasználó alkalmazása vagy msdia140.dll telepítve van, vagy a rendszerkönyvtárban kell lennie.

Ez a metódus beolvassa a megadott hibakeresési fejlécet, majd megkeresi és előkészíti a hibakeresési adatokat. A keresés előrehaladását igény szerint a visszahívások is jelenthetik és szabályozhatják. Ez például akkor lesz meghívva, IDiaLoadCallback::NotifyDebugDir ha a IDiaDataSource::loadDataForExe metódus megkeres és feldolgoz egy hibakeresési könyvtárat.

A IDiaReadExeAtOffsetCallback felületek lehetővé IDiaReadExeAtRVACallback teszik az ügyfélalkalmazás számára, hogy alternatív módszereket biztosítson a végrehajtható fájlból származó adatok beolvasásához, ha a fájl nem érhető el közvetlenül standard fájl I/O-n keresztül.

Ha érvényesítés nélkül szeretne betölteni egy .pdb fájlt, használja a metódust IDiaDataSource::loadDataFromPdb .

A .pdb fájl adott feltételek szerinti érvényesítéséhez használja a metódust IDiaDataSource::loadAndValidateDataFromPdb .

Ha egy .pdb fájlt közvetlenül a memóriából szeretne betölteni, használja a metódust IDiaDataSource::loadDataFromIStream .

Ha betöltés nélkül szeretne ellenőrizni egy .pdb fájlt, használja az IDiaDataSourceEx::ValidatePdb metódust .

példa

BYTE pbCodeViewInfo[] = {
  ...
};

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

Lásd még