IDiaDataSource::loadDataForExe

Abre y prepara los datos de depuración asociados al archivo .dll o .exe.

Sintaxis

HRESULT loadDataForExe (
   LPCOLESTR executable,
   LPCOLESTR searchPath,
   IUnknown* pCallback
);

Parámetros

ejecutable

[in] Ruta de acceso al archivo .exe o .dll.

searchPath

[in] Ruta de acceso alternativa para buscar datos de depuración.

pCallback

[in] Una interfaz IUnknown de un objeto que admite una interfaz de devolución de llamada de depuración, como IDiaLoadCallback, IDiaLoadCallback2, IDiaReadExeAtOffsetCallback o las interfaces IDiaReadExeAtRVACallback.

Valor devuelto

Si la operación se realiza correctamente, devuelve S_OK; de lo contrario, devuelve un código de error. En la tabla siguiente se muestran algunos de los posibles códigos de error para este método.

Value 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 Parámetro no válido.
E_UNEXPECTED El origen de datos ya se ha preparado.

Comentarios

El encabezado de depuración del archivo .exe o .dll asigna el nombre de la ubicación de datos de depuración asociada.

Si va a cargar datos de depuración desde un servidor de símbolos, symsrv.dll debe estar presente en el mismo directorio donde está instalada la aplicación del usuario o msdia140.dll, o debe estar presente en el directorio del sistema.

Este método lee el encabezado de depuración y, después, busca y prepara los datos de depuración. El progreso de la búsqueda puede, opcionalmente, notificarse y controlarse mediante devoluciones de llamada. Por ejemplo, se invoca IDiaLoadCallback::NotifyDebugDir cuando el método IDiaDataSource::loadDataForExe busca y procesa un directorio de depuración.

Las interfaces IDiaReadExeAtOffsetCallback e IDiaReadExeAtRVACallback permiten a la aplicación cliente proporcionar métodos alternativos para leer datos del archivo ejecutable cuando no se puede acceder directamente al archivo a través de la E/S de archivo estándar.

Para cargar un archivo .pdb sin validación, use el método IDiaDataSource::loadDataFromPdb.

Para validar el archivo .pdb con criterios específicos, use el método IDiaDataSource::loadAndValidateDataFromPdb.

Para cargar un archivo .pdb directamente desde la memoria, use el método IDiaDataSource::loadDataFromIStream.

Ejemplo

class MyCallBack: public IDiaLoadCallback
{
...
};
MyCallBack callback;
...
HRESULT hr = pSource->loadDataForExe( L"myprog.exe", L".\debug", (IUnknown*)&callback);
if (FAILED(hr))
{
    // Report error
}

Consulte también