Partilhar via


IDiaDataSourceEx::loadDataForExeEx

Abre e prepara os dados de depuração associados ao arquivo .exe/.dll, com pré-busca de registro opcional.

Sintaxe

HRESULT loadDataForExeEx (
   LPCOLESTR executable,
   LPCOLESTR searchPath,
   IUnknown* pCallback,
   BOOL      fPdbPrefetching
);

Parâmetros

executable

[in] Caminho para o arquivo .exe ou .dll.

searchPath

[in] Caminho alternativo para pesquisar dados de depuração. Vários caminhos devem ser delimitados por ponto-e-vírgula. Os caminhos podem conter um \.

pCallback

[em] Uma IUnknown interface para um objeto que dá suporte a uma interface de retorno de chamada de depuração, como as IDiaLoadCallbackinterfaces , IDiaLoadCallback2, IDiaReadExeAtOffsetCallbacke/ou as IDiaReadExeAtRVACallback interfaces.

fPdbPrefetching

[em] Se definido como TRUE, os registros de depuração adjacentes são pré-buscados na memória, potencialmente substituindo muitas operações de E/S de arquivo menores por menos operações maiores e, assim, melhorando a taxa de transferência geral à medida que esses registros são acessados posteriormente, às custas de um uso de memória potencialmente aumentado. Se definido como FALSE, isso se comporta de forma idêntica a IDiaDataSource::loadDataForExe. Se definido como algum outro valor, o comportamento não será especificado.

Valor de retorno

Se tiver êxito, retornará S_OK. Caso contrário, retornará um código de erro. A tabela a seguir mostra alguns dos códigos de erro possíveis para esse 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 Ocorreu uma tentativa de acessar um arquivo com um formato obsoleto.
E_PDB_INVALID_SIG A assinatura não corresponde.
E_PDB_INVALID_AGE A idade não corresponde.
E_INVALIDARG Parâmetro inválido.
E_UNEXPECTED A fonte de dados já foi preparada.

Comentários

O cabeçalho de depuração do arquivo de .exe/.dll nomeia o local de dados de depuração associado.

Se você estiver carregando dados de depuração de um servidor de símbolos, symsrv.dll deverá estar presente no mesmo diretório em que o aplicativo ou msdia140.dll do usuário está instalado ou deverá estar presente no diretório do sistema.

Esse método lê o cabeçalho de depuração e, em seguida, pesquisa e prepara os dados de depuração. O progresso da pesquisa pode, opcionalmente, ser relatado e controlado por meio de retornos de chamada. Por exemplo, o IDiaLoadCallback::NotifyDebugDir é invocado quando o método localiza e processa IDiaDataSourceEx::loadDataForExeEx um diretório de depuração.

As IDiaReadExeAtOffsetCallback interfaces and IDiaReadExeAtRVACallback permitem que o aplicativo cliente forneça métodos alternativos para ler 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 IDiaDataSourceEx::loadDataFromPdbEx método.

Para validar o arquivo .pdb em relação a critérios específicos, use o IDiaDataSourceEx::loadAndValidateDataFromPdbEx método.

Para carregar um arquivo .pdb diretamente da memória, use o IDiaDataSourceEx::loadDataFromIStreamEx método.

Para validar um arquivo .pdb sem carregá-lo, use o IDiaDataSourceEx::ValidatePdb método.

Exemplo

class MyCallBack: public IDiaLoadCallback
{
...
};
MyCallBack callback;
...
HRESULT hr = pSource->loadDataForExeEx( L"myprog.exe", L".\debug", (IUnknown*)&callback, TRUE);
if (FAILED(hr))
{
    // Report error
}

Confira também