Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Otwiera i przygotowuje dane debugowania skojarzone z plikiem .exe/.dll .
Składnia
HRESULT loadDataForExe (
LPCOLESTR executable,
LPCOLESTR searchPath,
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 .
pCallback
[in] IUnknown Interfejs dla obiektu, który obsługuje interfejs wywołania zwrotnego debugowania, taki jak IDiaLoadCallback, IDiaLoadCallback2, IDiaReadExeAtOffsetCallback i/lub interfejsy IDiaReadExeAtRVACallback.
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 przestarzałym 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
Nagłówek debugowania .exe/.dll pliku nazywa skojarzona lokalizacja danych debugowania.
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 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 ze wstępnie pobieranymi rekordami symboli, użyj IDiaDataSourceEx::loadDataForExeEx metody .
Aby załadować plik .pdb 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 IDiaDataSourceEx::ValidatePdb 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ż
IDiaDataSourceIDiaLoadCallbackIDiaLoadCallback2IDiaLoadCallback::NotifyDebugDirIDiaReadExeAtOffsetCallbackIDiaReadExeAtRVACallbackIDiaDataSourceEx::loadDataForExeExIDiaDataSource::loadDataFromPdbIDiaDataSource::loadAndValidateDataFromPdbIDiaDataSource::loadDataFromIStreamIDiaDataSourceEx::ValidatePdb