Release DIA2 handles when shutting down callstack resolver

* Otherwise a handle is kept open to the PDB and you can't recompile.
This commit is contained in:
baldurk
2017-07-25 09:11:17 +01:00
parent c2f08d25de
commit 434534d2e3
+11
View File
@@ -180,6 +180,15 @@ uint32_t GetModule(const wchar_t *pdbName, GUID guid, DWORD age)
return 0;
}
void Release(uint32_t module)
{
if(module > 0 && module <= modules.size())
{
SAFE_RELEASE(modules[module - 1].pSession);
SAFE_RELEASE(modules[module - 1].pSource);
}
}
void SetBaseAddress(uint32_t module, uint64_t addr)
{
if(module > 0 && module <= modules.size())
@@ -868,6 +877,8 @@ Win32CallstackResolver::Win32CallstackResolver(char *moduleDB, size_t DBSize, st
Win32CallstackResolver::~Win32CallstackResolver()
{
for(size_t i = 0; i < modules.size(); i++)
DIA2::Release(modules[i].moduleId);
}
Callstack::AddressDetails Win32CallstackResolver::GetAddr(DWORD64 addr)