Udostępnij za pośrednictwem


IDiaDataSource::loadDataFromCodeViewInfo

Otwiera i przygotowuje dane debugowania skojarzone z plikiem .exe/.dll .

Składnia

HRESULT loadDataFromCodeViewInfo (
   LPCOLESTR executable,
   LPCOLESTR searchPath,
   DWORD     cbCvInfo,
   BYTE*     pbCvInfo,
   IUnknown* pCallback
);

Parametry

plik wykonywalny

[in] Ścieżka do .exe pliku lub .dll .

searchPath

[in] Alternatywne ścieżki do wyszukiwania danych debugowania. Wiele ścieżek powinno być rozdzielonych średnikami. Ścieżki mogą zawierać końcowy \ciąg .

cbCvInfo

[in] Rozmiar w bajtach paramteru pbCvInfo .

pbCvInfo

[in] Alternatywne informacje o widoku kodu nagłówka debugowania (aby zastąpić to, co jest normalne odczytane z IMAGE_DEBUG_DIRECTORY pliku wykonywalnego). Obsługiwane są tylko nagłówki RSDS lub NB10.

pCallback

[in] IUnknown Interfejs dla obiektu, który obsługuje interfejs wywołania zwrotnego debugowania, taki jak IDiaLoadCallback, IDiaLoadCallback2, IDiaReadExeAtOffsetCallbacki/lub "IDiaReadExeAtRVACallback interfejsy.

Wartość zwracana

Jeśli operacja powiedzie się, zwraca wartość S_OK; w przeciwnym razie zwraca kod błędu. W 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ć pliku lub plik ma nieprawidłowy format.
E_PDB_FORMAT Podjęto próbę uzyskania dostępu do pliku w nieobsługiwanym formacie.
E_PDB_INVALID_SIG Podpis nie jest zgodny.
E_PDB_INVALID_AGE Wiek nie jest zgodny.
E_INVALIDARG Nieprawidłowy parametr.
E_UNEXPECTED Źródło danych zostało już przygotowane.

Uwagi

Informacje o widoku kodu w IMAGE_DEBUG_TYPE_CODEVIEW formacie zawierają nazwy skojarzonej lokalizacji danych debugowania, a także prodiving pól znakowania i wieku, które mają być zgodne.

Jeśli ładujesz dane debugowania z serwera symboli, symsrv.dll musi znajdować się w tym samym katalogu, w którym zainstalowano aplikację użytkownika lub msdia140.dll albo musi znajdować się w katalogu systemowym.

Ta metoda odczytuje podany nagłówek debugowania, a następnie wyszukuje i przygotowuje dane debugowania. Postęp wyszukiwania może, opcjonalnie, być raportowany i kontrolowany za pośrednictwem wywołań zwrotnych. Na przykład element IDiaLoadCallback::NotifyDebugDir jest wywoływany, gdy IDiaDataSource::loadDataForExe metoda znajduje i przetwarza katalog debugowania.

Interfejsy IDiaReadExeAtOffsetCallback i IDiaReadExeAtRVACallback umożliwiają aplikacji klienckiej udostępnianie alternatywnych metod odczytywania danych z pliku wykonywalnego, gdy nie można uzyskać dostępu bezpośrednio za pośrednictwem standardowych operacji we/wy pliku.

Aby załadować .pdb plik bez walidacji, użyj IDiaDataSource::loadDataFromPdb metody .

Aby zweryfikować plik .pdb pod kątem określonych kryteriów, użyj IDiaDataSource::loadAndValidateDataFromPdb metody .

Aby załadować plik .pdb bezpośrednio z pamięci, użyj IDiaDataSource::loadDataFromIStream metody .

Aby zweryfikować plik .pdb bez ładowania go, użyj metody IDiaDataSourceEx::ValidatePdb.

Przykład

BYTE pbCodeViewInfo[] = {
  ...
};

HRESULT hr = pSource->loadDataFromCodeViewInfo( L"myprog.exe", L".\debug", sizeof(pbCodeViewInfo), pbCodeViewInfo, nullptr);
if (FAILED(hr))
{
    // Report error
}

Zobacz też