Sdílet prostřednictvím


IDiaDataSource::loadDataFromMiscInfo

Otevře a připraví ladicí data přidružená k .exe/.dll souboru.

Syntaxe

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

Parametry

executable

[v] Cesta k .exe souboru nebo .dll souboru

searchPath

[v] Alternativní cesty k hledání dat ladění Více cest by mělo být oddělené středníkem. Cesty můžou obsahovat koncovou \cestu .

timeStampExe

[v] Alternativní časové razítko spustitelné image

timeStampDbg

[v] Alternativní časové razítko informací o ladění.

sizeOfExe

[v] Alternativní velikost spustitelné image v bajtech

cbMiscInfo

[v] Velikost v bajtech paramteru pbMiscInfo

pbMiscInfo

[v] Alternativní hlavička ladění ve IMAGE_DEBUG_MISC formátu, která poskytuje název souboru s informacemi o ladění.

pCallback

[v] Rozhraní IUnknown pro objekt, který podporuje rozhraní zpětného volání ladění, například IDiaLoadCallbackrozhraní , IDiaLoadCallback2, IDiaReadExeAtOffsetCallbacka/nebo IDiaReadExeAtRVACallback rozhraní.

Návratová hodnota

V případě úspěchu vrátí hodnotu S_OK; v opačném případě vrátí kód chyby. Následující tabulka uvádí některé možné kódy chyb pro tuto metodu.

Hodnota Popis
E_PDB_NOT_FOUND Soubor se nepodařilo otevřít nebo soubor má neplatný formát.
E_PDB_FORMAT Pokusil se o přístup k souboru s zastaralým formátem.
E_PDB_INVALID_SIG Podpis se neshoduje.
E_PDB_INVALID_AGE Věk se neshoduje.
E_INVALIDARG Neplatný parametr.
E_UNEXPECTED Zdroj dat je již připravený.

Poznámky

PbMiscInfo nahradí ladicí informace ve spustitelné imagi a pojmenuje přidružené umístění dat ladění. Časové razítka a velikost se používají ke shodě s informacemi o ladění.

Pokud načítáte ladicí data ze serveru symbolů, symsrv.dll musí být ve stejném adresáři, ve kterém je nainstalovaná aplikace uživatele nebo msdia140.dll, nebo musí být v systémovém adresáři.

Tato metoda vyhledá a připraví ladicí data. Průběh hledání může být volitelně hlášen a řízen zpětnými voláními. Například je IDiaLoadCallback::NotifyDebugDir vyvolána, když IDiaDataSource::loadDataForExe metoda najde a zpracuje ladicí adresář.

Rozhraní IDiaReadExeAtOffsetCallback a IDiaReadExeAtRVACallback rozhraní umožňují klientské aplikaci poskytovat alternativní metody pro čtení dat ze spustitelného souboru, pokud k souboru nelze získat přístup přímo prostřednictvím standardních vstupně-výstupních operací souboru.

K načtení souboru .pdb bez ověření použijte metodu IDiaDataSource::loadDataFromPdb .

K ověření souboru .pdb na základě konkrétních kritérií použijte metodu IDiaDataSource::loadAndValidateDataFromPdb .

K načtení souboru .pdb přímo z paměti použijte metodu IDiaDataSource::loadDataFromIStream .

Pokud chcete ověřit soubor .pdb bez načtení, použijte metodu IDiaDataSourceEx::ValidatePdb .

Příklad

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
}

Viz také