Sdílet prostřednictvím


IDiaDataSource::loadDataForExe

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

Syntaxe

HRESULT loadDataForExe (
   LPCOLESTR executable,
   LPCOLESTR searchPath,
   IUnknown* pCallback
);

Parametry

spustitelný

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

pCallback

[v] Rozhraní IUnknown pro objekt, který podporuje ladění zpětné volání rozhraní, jako je IDiaLoadCallback, IDiaLoadCallback2, IDiaReadExeAtOffsetCallback a/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

Hlavička .exe/.dll ladění souboru pojmenuje přidružené umístění dat 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 přečte hlavičku ladění a pak 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.

Pokud chcete načíst .pdb soubor s předem načtenými záznamy symbolů, použijte metodu IDiaDataSourceEx::loadDataForExeEx .

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 .

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

Příklad

class MyCallBack: public IDiaLoadCallback
{
...
};
MyCallBack callback;
...
HRESULT hr = pSource->loadDataForExe( L"myprog.exe", L".\debug", (IUnknown*)&callback);
if (FAILED(hr))
{
    // Report error
}

Viz také