Partilhar via


IDiaDataSource::loadDataFromMiscInfo

Abre e prepara os dados de depuração associados ao .exe/.dll arquivo.

Sintaxe

HRESULT loadDataFromMiscInfo (
   LPCOLESTR executable,
   LPCOLESTR searchPath,
   DWORD     timeStampExe,
   DWORD     timeStampDbg,
   DWORD     sizeOfExe,
   DWORD     cbMiscInfo,
   BYTE*     pbMiscInfo,
   IUnknown* pCallback
);

Parâmetros

executable

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

searchPath

[em] Caminhos alternativos para procurar dados de depuração. Vários caminhos devem ser delimitados por ponto-e-vírgula. Os caminhos podem conter um trailing \.

timeStampExe

[em] Carimbo de data/hora alternativo para a imagem executável.

timeStampDbg

[em] Carimbo de data/hora alternativo para as informações de depuração.

sizeOfExe

[em] Tamanho alternativo da imagem executável em bytes.

cbMiscInfo

[em] Tamanho em bytes do pbMiscInfo parâmetro.

pbMiscInfo

[em] Cabeçalho de depuração alternativo no IMAGE_DEBUG_MISC formato que fornece o nome do arquivo com as informações de depuração.

pCallback

[em] Uma IUnknown interface para um objeto que suporta uma interface de retorno de chamada de depuração, como as IDiaLoadCallbackinterfaces , IDiaLoadCallback2, , eIDiaReadExeAtOffsetCallback/ou .IDiaReadExeAtRVACallback

Valor de retorno

Se for bem-sucedido, retorna S_OK; caso contrário, retorna 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 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.

Observações

O pbMiscInfo substitui as informações de depuração na imagem executável e nomeia o local de dados de depuração associado. Os carimbos de data/hora e o tamanho são usados para corresponder às informações de depuração.

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

Este método procura e prepara os dados de depuração. O progresso da pesquisa pode, opcionalmente, ser reportado e controlado através de retornos de chamada. Por exemplo, o IDiaLoadCallback::NotifyDebugDir é invocado quando o método localiza e processa IDiaDataSource::loadDataForExe um diretório de depuração.

As IDiaReadExeAtOffsetCallback interfaces e 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 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.

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

Exemplo

DWORD dwTimeStamp = 0x3BF1C039;
DWORD dwSizeImage = 0x0000A000;
BYTE pbMiscInfo[0x110] = {
  ...
};
HRESULT hr = pSource->loadDataFromMiscInfo( L"myprog.exe", L".\debug", dwTimeStamp, dwTimeStamp, dwSizeOfImage, sizeof(pbMiscInfo), pbMiscInfo, nullptr);
if (FAILED(hr))
{
    // Report error
}

Ver também