Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Открывает и подготавливает отладочные данные, связанные с файлом .exe/.dll, с необязательной предварительной выборкой записей.
Синтаксис
HRESULT loadDataForExeEx (
LPCOLESTR executable,
LPCOLESTR searchPath,
IUnknown* pCallback,
BOOL fPdbPrefetching
);
Параметры
executable
[in] Путь к файлу .exe или .dll.
searchPath
[in] Альтернативный путь для поиска данных отладки. Несколько путей должны быть разделены точкой с запятой. Пути могут содержать конечный путь \.
pCallback
[in] Интерфейс IUnknown для объекта, поддерживающего интерфейс обратного вызова отладки, например IDiaLoadCallback, , IDiaLoadCallback2IDiaReadExeAtOffsetCallbackи (или) IDiaReadExeAtRVACallback интерфейсов.
fPdbPrefetching
[in] Если задано значение TRUE, смежные записи отладки предварительно извлекаются в память, потенциально заменяя многие операции ввода-вывода меньшего размера файлов меньшими, большими операциями и таким образом повышая общую пропускную способность по мере последующего доступа к этим записям, за счет потенциально повышенного использования памяти. Если задано значение FALSE, это поведение идентично IDiaDataSource::loadDataForExe. Если задано какое-то другое значение, поведение не указано.
Возвращаемое значение
В случае успешного выполнения возвращается S_OK; в противном случае возвращается код ошибки. В следующей таблице показаны некоторые возможные коды ошибок для этого метода.
| значение | Описание |
|---|---|
E_PDB_NOT_FOUND |
Не удалось открыть файл или файл имеет недопустимый формат. |
E_PDB_FORMAT |
Попытка получить доступ к файлу с устаревшим форматом. |
E_PDB_INVALID_SIG |
Подпись не соответствует. |
E_PDB_INVALID_AGE |
Возраст не соответствует. |
E_INVALIDARG |
Недопустимый параметр . |
E_UNEXPECTED |
Источник данных уже подготовлен. |
Замечания
Заголовок отладки файла .exe/.dll называет связанное расположение данных отладки.
Если данные отладки загружаются с сервера символов, symsrv.dll должны присутствовать в том же каталоге, где установлено приложение пользователя или msdia140.dll, или он должен присутствовать в системном каталоге.
Этот метод считывает заголовок отладки, а затем ищет и подготавливает данные отладки. Ход выполнения поиска может сообщаться и контролироваться с помощью обратных вызовов. Например, вызывается, IDiaLoadCallback::NotifyDebugDir когда IDiaDataSourceEx::loadDataForExeEx метод находит и обрабатывает каталог отладки.
IDiaReadExeAtRVACallback Интерфейсы IDiaReadExeAtOffsetCallback позволяют клиентскому приложению предоставлять альтернативные методы чтения данных из исполняемого файла, если доступ к файлу невозможен напрямую через стандартный ввод-вывод файла.
Чтобы загрузить PDB-файл без проверки, используйте IDiaDataSourceEx::loadDataFromPdbEx этот метод.
Чтобы проверить PDB-файл с определенными критериями, используйте IDiaDataSourceEx::loadAndValidateDataFromPdbEx этот метод.
Чтобы загрузить PDB-файл непосредственно из памяти, используйте IDiaDataSourceEx::loadDataFromIStreamEx этот метод.
Чтобы проверить PDB-файл без загрузки, используйте IDiaDataSourceEx::ValidatePdb этот метод.
Пример
class MyCallBack: public IDiaLoadCallback
{
...
};
MyCallBack callback;
...
HRESULT hr = pSource->loadDataForExeEx( L"myprog.exe", L".\debug", (IUnknown*)&callback, TRUE);
if (FAILED(hr))
{
// Report error
}