IDiaDataSource::loadDataForExe
Apre e prepara i dati di debug associati al .exe
/.dll
file.
Sintassi
HRESULT loadDataForExe (
LPCOLESTR executable,
LPCOLESTR searchPath,
IUnknown* pCallback
);
Parametri
file eseguibile
[in] Percorso del .exe
file o .dll
.
searchPath
[in] Percorsi alternativi per la ricerca dei dati di debug. I percorsi multipli devono essere delimitati da punti e virgola. I percorsi possono contenere un oggetto finale \
.
pCallback
[in] Interfaccia IUnknown
per un oggetto che supporta un'interfaccia di callback di debug, ad esempio IDiaLoadCallback, IDiaLoadCallback2, IDiaReadExeAtOffsetCallback e/o le interfacce IDiaReadExeAtRVACallback.
Valore restituito
Se ha esito positivo, restituisce S_OK
; in caso contrario, restituisce un codice di errore. La tabella seguente illustra alcuni dei possibili codici di errore 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:
L'intestazione .exe
/.dll
di debug dei nomi di file il percorso dei dati di debug associato.
Se si caricano dati di debug da un server di simboli, symsrv.dll deve essere presente nella stessa directory in cui è installata l'applicazione dell'utente o msdia140.dll oppure deve essere presente nella directory di sistema.
Questo metodo legge l'intestazione di debug e quindi cerca e prepara i dati di debug. Lo stato di avanzamento della ricerca può, facoltativamente, essere segnalato e controllato tramite callback. Ad esempio, IDiaLoadCallback::NotifyDebugDir
viene richiamato quando il IDiaDataSource::loadDataForExe
metodo trova ed elabora una directory di debug.
Le IDiaReadExeAtOffsetCallback
interfacce e IDiaReadExeAtRVACallback
consentono all'applicazione client di fornire metodi alternativi per la lettura dei dati dal file eseguibile quando non è possibile accedere direttamente al file tramite I/O di file standard.
Per caricare un .pdb
file con il prelettura dei record di simboli, usare il IDiaDataSourceEx::loadDataForExeEx
metodo .
Per caricare un file con estensione pdb senza convalida, usare il IDiaDataSource::loadDataFromPdb
metodo .
Per convalidare il file con estensione pdb in base a criteri specifici, usare il IDiaDataSource::loadAndValidateDataFromPdb
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
class MyCallBack: public IDiaLoadCallback
{
...
};
MyCallBack callback;
...
HRESULT hr = pSource->loadDataForExe( L"myprog.exe", L".\debug", (IUnknown*)&callback);
if (FAILED(hr))
{
// Report error
}
Vedi anche
IDiaDataSource
IDiaLoadCallback
IDiaLoadCallback2
IDiaLoadCallback::NotifyDebugDir
IDiaReadExeAtOffsetCallback
IDiaReadExeAtRVACallback
IDiaDataSourceEx::loadDataForExeEx
IDiaDataSource::loadDataFromPdb
IDiaDataSource::loadAndValidateDataFromPdb
IDiaDataSource::loadDataFromIStream
IDiaDataSourceEx::ValidatePdb