Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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
[in] Caminho para o arquivo ou .exe o .dll caminho.
searchPath
[in] Caminhos alternativos para pesquisar dados de depuração. Vários caminhos devem ser delimitados por ponto-e-vírgula. Os caminhos podem conter um caminho à \direita.
timeStampExe
[in] Carimbo de data/hora alternativo para a imagem executável.
timeStampDbg
[in] Carimbo de data/hora alternativo para as informações de depuração.
sizeOfExe
[in] Tamanho alternativo da imagem executável em bytes.
cbMiscInfo
[in] Tamanho em bytes do pbMiscInfo parâmetro.
pbMiscInfo
[in] 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
[in] Uma IUnknown interface para um objeto que dá suporte a uma interface de retorno de chamada de depuração, como as IDiaLoadCallbackinterfaces , IDiaLoadCallback2, e IDiaReadExeAtOffsetCallback/ou as IDiaReadExeAtRVACallback interfaces.
Valor de retorno
Se tiver êxito, retornará 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 deverá estar presente no mesmo diretório em que o aplicativo do usuário ou msdia140.dll está instalado ou deve estar presente no diretório do sistema.
Esse método 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 IDiaDataSource::loadDataForExe método localiza e processa um diretório de depuração.
As IDiaReadExeAtOffsetCallback interfaces e IDiaReadExeAtRVACallback o aplicativo cliente permitem que o aplicativo cliente forneça métodos alternativos para ler dados do arquivo executável quando o arquivo não puder 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
}