IDiaDataSource::loadDataForExe

打开并准备调试数据与 .exe/.dll 文件。

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

参数

返回值

如果成功,则返回; S_OK否则,返回错误代码。下表显示了一些此方法可能的错误代码。

说明

E_PDB_NOT_FOUND

未能打开文件或文件的格式无效。

E_PDB_FORMAT

尝试访问具有过时的格式的文件。

E_PDB_INVALID_SIG

签名不匹配。

E_PDB_INVALID_AGE

年龄不匹配。

E_INVALIDARG

参数无效。

E_UNEXPECTED

数据源已准备。

备注

.exe/.dll 文件的调试标头名称关联的调试数据位置。

此方法读取调试标题并搜索和准备调试数据。搜索的进度可以通过回调,可选择,报告和进行控制。例如,那么,当 IDiaDataSource::loadDataForExe 方法查找并处理一调试目录时, IDiaLoadCallback::NotifyDebugDir 调用。

文件时,在不能直接通过标准文件 I/O 时,访问 IDiaReadExeAtOffsetCallbackIDiaReadExeAtRVACallback 接口允许客户端应用程序来读取可执行文件的数据提供替代方法。

若要填充 .pdb 文件,而不验证,请使用 IDiaDataSource::loadDataFromPdb 方法。

若要验证 .pdb 文件特定条件,请使用 IDiaDataSource::loadAndValidateDataFromPdb 方法。

直接从内存若要填充 .pdb 文件,请使用 IDiaDataSource::loadDataFromIStream 方法。

示例

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

请参见

参考

IDiaDataSource

IDiaLoadCallback

IDiaLoadCallback2

IDiaLoadCallback::NotifyDebugDir

IDiaReadExeAtOffsetCallback

IDiaReadExeAtRVACallback

IDiaDataSource::loadDataFromPdb

IDiaDataSource::loadAndValidateDataFromPdb

IDiaDataSource::loadDataFromIStream