IDiaDataSourceEx::loadDataForExeEx
Otevře a připraví ladicí data přidružená k souboru .exe/.dll s volitelným před načtením záznamu.
Syntaxe
HRESULT loadDataForExeEx (
LPCOLESTR executable,
LPCOLESTR searchPath,
IUnknown* pCallback,
BOOL fPdbPrefetching
);
Parametry
executable
[v] Cesta k souboru .exe nebo .dll
searchPath
[v] Alternativní cesta 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 rozhraní zpětného volání ladění, například IDiaLoadCallback
rozhraní , IDiaLoadCallback2
, IDiaReadExeAtOffsetCallback
a/nebo IDiaReadExeAtRVACallback
rozhraní.
fPdbPrefetching
[v] Pokud je nastavená možnost TRUE
, sousední ladicí záznamy se předem načítají do paměti, potenciálně nahradí mnoho menších vstupně-výstupních operací s menším počtem operací, většími operacemi a tím se zlepší celková propustnost, protože se k těmto záznamům následně přistupuje, a to na úkor potenciálně zvýšeného využití paměti. Pokud je nastavená hodnota FALSE
, chová se stejně jako IDiaDataSource::loadDataForExe
. Pokud je nastavená na jinou hodnotu, chování není zadané.
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 ladění souboru .exe/.dll 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ž IDiaDataSourceEx::loadDataForExeEx
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 IDiaDataSourceEx::loadDataFromPdbEx
.
K ověření souboru .pdb na základě konkrétních kritérií použijte metodu IDiaDataSourceEx::loadAndValidateDataFromPdbEx
.
K načtení souboru .pdb přímo z paměti použijte metodu IDiaDataSourceEx::loadDataFromIStreamEx
.
K ověření souboru .pdb bez načtení použijte metodu IDiaDataSourceEx::ValidatePdb
.
Příklad
class MyCallBack: public IDiaLoadCallback
{
...
};
MyCallBack callback;
...
HRESULT hr = pSource->loadDataForExeEx( L"myprog.exe", L".\debug", (IUnknown*)&callback, TRUE);
if (FAILED(hr))
{
// Report error
}