Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Apre e verifica che il file del database del programma (con estensione pdb) corrisponda alle informazioni sulla firma fornite e prepari il file con estensione pdb come origine dati di debug.
Sintassi
HRESULT loadAndValidateDataFromPdb (
LPCOLESTR pdbPath,
GUID* pcsig70,
DWORD sig,
DWORD age
);
Parametri
pdbPath
[in] Percorso del file con estensione pdb.
pcsig70
[in] Firma dell'identificatore univoco globale (GUID) da verificare rispetto alla firma del file con estensione pdb. Solo i file con estensione pdb in Visual C++ e versioni successive hanno firme GUID.
sig
[in] Firma a 32 bit da verificare rispetto alla firma del file con estensione pdb.
age
[in] Valore di età da verificare. L'età non corrisponde necessariamente a un valore temporale noto, viene usato per determinare se un file con estensione pdb non è sincronizzato con un file .exe corrispondente.
Valore restituito
Se ha esito positivo, restituisce S_OK; in caso contrario, restituisce un codice di errore. Nella tabella seguente vengono illustrati i possibili valori restituiti per questo metodo.
| valore | Descrizione |
|---|---|
E_PDB_NOT_FOUND |
Impossibile aprire il file oppure il file ha un formato non valido. |
E_PDB_FORMAT |
Tentativo di accesso a un file con un formato obsoleto. |
E_PDB_INVALID_SIG |
La firma non corrisponde. |
E_PDB_INVALID_AGE |
L'età non corrisponde. |
E_INVALIDARG |
Parametro non valido. |
E_UNEXPECTED |
L'origine dati è già stata preparata. |
Osservazioni:
Un file con estensione pdb contiene sia valori di firma che di età. Questi valori vengono replicati nel file .exe o .dll corrispondente al file con estensione pdb. Prima di preparare l'origine dati, questo metodo verifica che la firma e l'età del file con estensione pdb denominata corrispondano ai valori specificati.
Per caricare un file con estensione pdb e convalidarlo con il prelettura, usare il IDiaDataSourceEx::loadAndValidateDataFromPdbEx metodo .
Per caricare un file con estensione pdb senza convalida, usare il IDiaDataSource::loadDataFromPdb metodo .
Per ottenere l'accesso al processo di caricamento dei dati (tramite un meccanismo di callback), usare il IDiaDataSource::loadDataForExe metodo .
Per caricare un file con estensione pdb direttamente dalla memoria, usare il IDiaDataSource::loadDataFromIStream metodo .
Per convalidare un file con estensione pdb senza caricarlo, usare il IDiaDataSourceEx::ValidatePdb metodo .
Esempio
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
}