打开并准备调试数据与 .exe/.dll 文件。
HRESULT loadDataForExe (
LPCOLESTR executable,
LPCOLESTR searchPath,
IUnknown* pCallback
);
参数
executable
[in] .exe 或 .dll 文件的路径。searchPath
[in] 搜索的备用路径为调试数据。pCallback
[in] 支持一调试回调接口,如 IDiaLoadCallback、 IDiaLoadCallback2、 IDiaReadExeAtOffsetCallback,和/或 IDiaReadExeAtRVACallback 接口的对象 IUnknown 接口。
返回值
如果成功,则返回; 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 时,访问 IDiaReadExeAtOffsetCallback 和 IDiaReadExeAtRVACallback 接口允许客户端应用程序来读取可执行文件的数据提供替代方法。
若要填充 .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
}
请参见
参考
IDiaLoadCallback::NotifyDebugDir
IDiaDataSource::loadDataFromPdb