IDiaDataSource::loadDataFromCodeViewInfo
Otevře a připraví ladicí data přidružená k .exe
/.dll
souboru.
Syntaxe
HRESULT loadDataFromCodeViewInfo (
LPCOLESTR executable,
LPCOLESTR searchPath,
DWORD cbCvInfo,
BYTE* pbCvInfo,
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 .
cbCvInfo
[v] Velikost v bajtech paramteru pbCvInfo
.
pbCvInfo
[v] Alternativní informace o zobrazení kódu hlavičky ladění (nahrazení normálního čtení z IMAGE_DEBUG_DIRECTORY spustitelného souboru). Podporují se pouze hlavičky RSDS nebo NB10.
pCallback
[v] IUnknown
Rozhraní pro objekt, který podporuje rozhraní zpětného volání ladění, například 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 nepodporovaný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
Informace o zobrazení kódu ve IMAGE_DEBUG_TYPE_CODEVIEW
formátu pojmenují přidružené umístění dat ladění a také prodivování polí znaménka a stáří, která se mají shodovat.
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 poskytnuté hlavičky 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.
K načtení .pdb
souboru 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
BYTE pbCodeViewInfo[] = {
...
};
HRESULT hr = pSource->loadDataFromCodeViewInfo( L"myprog.exe", L".\debug", sizeof(pbCodeViewInfo), pbCodeViewInfo, nullptr);
if (FAILED(hr))
{
// Report error
}