mirror of
https://github.com/ivellioscolin/pykd.git
synced 2025-04-21 04:13:22 +08:00
[0.2.x] ~small fixes for load symbols
git-svn-id: https://pykd.svn.codeplex.com/svn@80117 9b283d60-5439-405e-af05-b73fd8c4d996
This commit is contained in:
parent
142dd21918
commit
4cb4014242
@ -259,7 +259,7 @@ public:
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE load(__inout IDiaDataSource &dataSource) override
|
virtual HRESULT load(__inout IDiaDataSource &dataSource) override
|
||||||
{
|
{
|
||||||
CComPtr< IUnknown > readExeAtRVACallback(new ReadExeAtRVACallback(m_loadBase, m_openedSymbolFile) );
|
CComPtr< IUnknown > readExeAtRVACallback(new ReadExeAtRVACallback(m_loadBase, m_openedSymbolFile) );
|
||||||
return
|
return
|
||||||
|
@ -44,17 +44,40 @@ Module::Module(ULONG64 offset )
|
|||||||
|
|
||||||
SymbolSessionPtr& Module::getSymSession()
|
SymbolSessionPtr& Module::getSymSession()
|
||||||
{
|
{
|
||||||
m_symSession = loadSymbolFile(m_base, m_imageName, m_symfile);
|
if (m_symSession)
|
||||||
|
return m_symSession;
|
||||||
|
|
||||||
if ( !m_symSession )
|
try
|
||||||
{
|
{
|
||||||
m_symfile = getModuleSymbolFileName(m_base);
|
m_symSession = loadSymbolFile(m_base, m_imageName, m_symfile);
|
||||||
m_symSession = loadSymbolFile(m_symfile, m_base);
|
}
|
||||||
|
catch(const SymbolException &e)
|
||||||
|
{
|
||||||
|
DBG_UNREFERENCED_LOCAL_VARIABLE(e);
|
||||||
|
}
|
||||||
|
if (m_symSession)
|
||||||
|
return m_symSession;
|
||||||
|
|
||||||
|
// TODO: read image file path and load using IDiaReadExeAtOffsetCallback
|
||||||
|
|
||||||
|
m_symfile = getModuleSymbolFileName(m_base);
|
||||||
|
if (!m_symfile.empty())
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
m_symSession = loadSymbolFile(m_symfile, m_base);
|
||||||
|
}
|
||||||
|
catch(const SymbolException &e)
|
||||||
|
{
|
||||||
|
DBG_UNREFERENCED_LOCAL_VARIABLE(e);
|
||||||
|
}
|
||||||
if (m_symSession)
|
if (m_symSession)
|
||||||
throw SymbolException( "failed to load symbol file" );
|
return m_symSession;
|
||||||
|
|
||||||
|
m_symfile.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
return m_symSession;
|
throw SymbolException( "failed to load symbol file" );
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
Loading…
Reference in New Issue
Block a user