Megosztás:


IDiaDataSource::loadDataFromMiscInfo

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

Szemantika

HRESULT loadDataFromMiscInfo (
   LPCOLESTR executable,
   LPCOLESTR searchPath,
   DWORD     timeStampExe,
   DWORD     timeStampDbg,
   DWORD     sizeOfExe,
   DWORD     cbMiscInfo,
   BYTE*     pbMiscInfo,
   IUnknown* pCallback
);

Paraméterek

executable

[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 \.

timeStampExe

[in] Másodlagos időbélyeg a végrehajtható lemezképhez.

timeStampDbg

[in] Alternatív időbélyeg a hibakeresési információkhoz.

sizeOfExe

[in] A végrehajtható rendszerkép másik mérete bájtban.

cbMiscInfo

[in] Méret bájtban a paraméterben pbMiscInfo .

pbMiscInfo

[in] Alternatív hibakeresési IMAGE_DEBUG_MISC fejléc formátumban, amely megadja a fájlnevet a hibakeresési adatokkal.

pCallback

[in] Egy IUnknown olyan objektum felülete, amely támogatja a hibakeresési visszahívási felületet, például a 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 Egy elavult 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 pbMiscInfo lecseréli a végrehajtható lemezkép hibakeresési információit, és elnevezi a kapcsolódó hibakeresési adathelyet. Az időbélyegek és a méret a hibakeresési adatoknak való megfeleltetésére szolgál.

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 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

DWORD dwTimeStamp = 0x3BF1C039;
DWORD dwSizeImage = 0x0000A000;
BYTE pbMiscInfo[0x110] = {
  ...
};
HRESULT hr = pSource->loadDataFromMiscInfo( L"myprog.exe", L".\debug", dwTimeStamp, dwTimeStamp, dwSizeOfImage, sizeof(pbMiscInfo), pbMiscInfo, nullptr);
if (FAILED(hr))
{
    // Report error
}

Lásd még