IDiaDataSource::loadDataForExe
Abre e prepara os dados de depuração associados ao arquivo.exe/.dll.
HRESULT loadDataForExe (
LPCOLESTR executable,
LPCOLESTR searchPath,
IUnknown* pCallback
);
Parâmetros
executável
[in] Caminho para o arquivo. exe ou. dll.searchPath
[in] Caminho alternativo para procurar dados de depuração.pCallback
[in] Um IUnknown interface para um objeto que oferece suporte a uma interface de retorno de chamada de depuração, como o IDiaLoadCallback, IDiaLoadCallback2, o IDiaReadExeAtOffsetCallback, e/ou o IDiaReadExeAtRVACallback interfaces.
Valor de retorno
Se bem-sucedida, retorna S_OK; Caso contrário, retorna um código de erro. A tabela a seguir mostra alguns dos possíveis códigos de erro para este método.
Valor |
Descrição |
---|---|
E_PDB_NOT_FOUND |
Falha ao abrir o arquivo ou o arquivo tem um formato inválido. |
E_PDB_FORMAT |
Você tentou acessar um arquivo com um formato obsoleto. |
E_PDB_INVALID_SIG |
Assinatura não corresponde. |
E_PDB_INVALID_AGE |
Não é compatível com a idade. |
E_INVALIDARG |
Parâmetro inválido. |
E_UNEXPECTED |
Fonte de dados já foi preparado. |
Comentários
O cabeçalho de depuração do arquivo.exe/.dll nomeia o local dos dados associados de depuração.
Este método lê o cabeçalho de debug e, em seguida, procura e prepara os dados de depuração. O progresso da pesquisa pode, opcionalmente, relatado e controlado por meio de retornos de chamada. Por exemplo, o IDiaLoadCallback::NotifyDebugDir é chamado quando o IDiaDataSource::loadDataForExe método localiza e processa um diretório de depuração.
O IDiaReadExeAtOffsetCallback e IDiaReadExeAtRVACallback interfaces permite que o aplicativo cliente fornecer métodos alternativos para leitura de dados do arquivo executável quando o arquivo não pode ser acessado diretamente por meio de e/S de arquivo padrão.
Para carregar um arquivo. PDB sem validação, use o IDiaDataSource::loadDataFromPdb método.
Para validar o arquivo. PDB em relação a critérios específicos, use o IDiaDataSource::loadAndValidateDataFromPdb método.
Para carregar um arquivo. PDB diretamente da memória, use o IDiaDataSource::loadDataFromIStream método.
Exemplo
class MyCallBack: public IDiaLoadCallback
{
...
};
MyCallBack callback;
...
HRESULT hr = pSource->loadDataForExe( L"myprog.exe", L".\debug", (IUnknown*)&callback);
if (FAILED(hr))
{
// Report error
}
Consulte também
Referência
IDiaLoadCallback::NotifyDebugDir
IDiaDataSource::loadDataFromPdb