IDiaDataSource::loadDataForExe
Otwiera i przygotowuje debugowania dane skojarzone z plikiem.exe/.dll.
HRESULT loadDataForExe (
LPCOLESTR executable,
LPCOLESTR searchPath,
IUnknown* pCallback
);
Parametry
pliku wykonywalnego
[w] Ścieżka do pliku .exe lub .dll.searchPath
[w] Alternatywną ścieżkę do wyszukiwania danych debugowania.pCallback
[w] IUnknown Interfejsu dla obiektu, który obsługuje interfejs wywołania zwrotnego do debugowania, takich jak IDiaLoadCallback, IDiaLoadCallback2, IDiaReadExeAtOffsetCallback, i/lub IDiaReadExeAtRVACallback interfejsów.
Wartość zwracana
Jeśli się powiedzie, zwraca S_OK; w przeciwnym razie zwraca kod błędu.Poniższej tabeli przedstawiono niektóre z możliwych kodów błędów dla tej metody.
Wartość |
Opis |
---|---|
E_PDB_NOT_FOUND |
Nie można otworzyć plik lub plik ma nieprawidłowy format. |
E_PDB_FORMAT |
Nastąpiła próba uzyskania dostępu do pliku w formacie przestarzałe. |
E_PDB_INVALID_SIG |
Podpis nie odpowiada. |
E_PDB_INVALID_AGE |
Wiek nie pasuje. |
WARTOŚĆ E_INVALIDARG |
Nieprawidłowy parametr. |
E_UNEXPECTED |
Źródło danych zostało już przygotowane. |
Uwagi
Nagłówek debugowania w pliku.exe/.dll nazwy lokalizacji danych skojarzone debugowania.
Ta metoda odczytuje nagłówka debugowania i następnie wyszukuje i przygotowuje danych debugowania.Postęp wyszukiwania może opcjonalnie zgłoszone i kontrolowane za pomocą wywołania zwrotne.Na przykład IDiaLoadCallback::NotifyDebugDir jest wywoływana, gdy IDiaDataSource::loadDataForExe metoda znajduje i przetwarza katalogu debugowania.
IDiaReadExeAtOffsetCallback i IDiaReadExeAtRVACallback interfejsów umożliwia dostarczenie alternatywnych metod do odczytywania danych z pliku wykonywalnego, gdy plik nie jest dostępny bezpośrednio za pośrednictwem standardowych operacji We/Wy aplikacji klienta.
Aby załadować plik .pdb bez sprawdzania poprawności, należy użyć IDiaDataSource::loadDataFromPdb metody.
Aby sprawdzić poprawność pliku .pdb według określonych kryteriów, należy użyć IDiaDataSource::loadAndValidateDataFromPdb metody.
Aby załadować plik .pdb bezpośrednio z pamięci, należy użyć IDiaDataSource::loadDataFromIStream metody.
Przykład
class MyCallBack: public IDiaLoadCallback
{
...
};
MyCallBack callback;
...
HRESULT hr = pSource->loadDataForExe( L"myprog.exe", L".\debug", (IUnknown*)&callback);
if (FAILED(hr))
{
// Report error
}
Zobacz też
Informacje
IDiaLoadCallback::NotifyDebugDir
IDiaDataSource::loadDataFromPdb