如何让DIA释放对pdb文件的锁定?
我加载一个pdb并创建一个如下所示的会话,一切正常,我可以使用该会话从pdb获取数据。
当我完成pdb后,我释放了会话和DiaSource,但是DIA仍然锁定了pdb文件,在我的应用程序退出之前,我无法删除资源管理器中的pdb文件。如何告诉DIA释放pdb文件上的锁?
CoCreateInstance(__uuidof(DiaSource),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(IDiaDataSource),
(void**)&mp_DiaSource);
mp_DiaSource->loadAndValidateDataFromPdb(
(LPCOLESTR)p_wide_filename, &m_Sig, 0, m_Age);
mp_DiaSource->openSession(&mp_Session);
// do stuff with mp_Session here
mp_Session->Release();
mp_DiaSource->Release();
非常感谢。
斯图尔特。
答案 0 :(得分:1)
至少对于msdia90.dll
,确实在Release()之后文件句柄没有关闭,可能的解决方法是调用loadDataFromIStream()
,并传递IStream
而不是路径到但是,加载pdb文件,我从不测试这是否真的有用。