IDiaDataSource::loadAndValidateDataFromPdb
Abre y comprueba que el archivo de base de datos del programa (.pdb) coincide con la información de firma proporcionada y prepara el archivo .pdb como origen de datos de depuración.
Sintaxis
HRESULT loadAndValidateDataFromPdb (
LPCOLESTR pdbPath,
GUID* pcsig70,
DWORD sig,
DWORD age
);
Parámetros
pdbPath
[in] La ruta de acceso al archivo .pdb.
pcsig70
[in] Firma de identificador único global (GUID) que se va a comprobar con la firma del archivo .pdb. Solo los archivos .pdb de Visual C++, y de las versiones posteriores, tienen firmas GUID.
sig
[in] La firma de 32 bits que se va a comprobar con la firma del archivo .pdb.
age
[in] Valor de antigüedad que se va a comprobar. La antigüedad no corresponde necesariamente a ningún valor de hora conocido, se usa para determinar si un archivo .pdb no está sincronizado con un archivo .exe correspondiente.
Valor devuelto
Si la operación se realiza correctamente, devuelve S_OK
; de lo contrario, devuelve un código de error. En la siguiente tabla se muestran los posibles valores devueltos para este método.
Valor | Descripción |
---|---|
E_PDB_NOT_FOUND |
No se pudo abrir el archivo o el archivo tiene un formato no válido. |
E_PDB_FORMAT |
Se intentó acceder a un archivo con un formato obsoleto. |
E_PDB_INVALID_SIG |
La firma no coincide. |
E_PDB_INVALID_AGE |
La edad no coincide. |
E_INVALIDARG |
El parámetro no es válido. |
E_UNEXPECTED |
El origen de datos ya se ha preparado. |
Comentarios
Un archivo .pdb contiene los valores de firma y de antigüedad. Estos valores se replican en los archivos .exe o .dll que coinciden con el archivo .pdb. Antes de preparar el origen de datos, este método comprueba que la firma y la antigüedad del archivo .pdb con nombre coinciden con los valores especificados.
Para cargar un archivo .pdb y validarlo con captura previa, use el IDiaDataSourceEx::loadAndValidateDataFromPdbEx
método .
Para cargar un archivo .pdb sin validación, use el IDiaDataSource::loadDataFromPdb
método .
Para obtener acceso al proceso de carga de datos (mediante un mecanismo de devolución de llamada), use el IDiaDataSource::loadDataForExe
método .
Para cargar un archivo .pdb directamente desde la memoria, use el IDiaDataSource::loadDataFromIStream
método .
Para validar un archivo .pdb sin cargarlo, use el IDiaDataSourceEx::ValidatePdb
método .
Ejemplo
IDiaDataSource* pSource; // Previously created data source.
DEFINE_GUID(expectedGUIDSignature,0x1234,0x5678,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08);
DWORD expectedFileSignature = 0x12345678;
DWORD expectedAge = 128;
HRESULT hr;
hr = pSource->loadAndValidateDataFromPdb( L"yprog.pdb",
&expectedGUIDSignature,
expectedFileSignature,
expectedAge);
if (FAILED(hr))
{
// Report an error
}