[0.1.x] ~fix: infinite recursion (reload symbols->get pdb->reload symbols...)

git-svn-id: https://pykd.svn.codeplex.com/svn@73653 9b283d60-5439-405e-af05-b73fd8c4d996
This commit is contained in:
SND\EreTIk_cp 2012-01-26 20:33:52 +00:00 committed by Mikhail I. Izmestev
parent 114b11be8e
commit eece068ff3
2 changed files with 17 additions and 3 deletions

View File

@ -137,7 +137,8 @@ Module::getPdbName()
if (!*moduleInfo.LoadedPdbName) if (!*moduleInfo.LoadedPdbName)
{ {
reloadSymbols(); reloadSymbolsImpl();
hres = m_advanced->GetSymbolInformation( hres = m_advanced->GetSymbolInformation(
DEBUG_SYMINFO_IMAGEHLP_MODULEW64, DEBUG_SYMINFO_IMAGEHLP_MODULEW64,
m_base, m_base,
@ -162,7 +163,7 @@ Module::getPdbName()
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
void void
Module::reloadSymbols() Module::reloadSymbolsImpl()
{ {
HRESULT hres; HRESULT hres;
@ -172,6 +173,15 @@ Module::reloadSymbols()
hres = m_symbols->Reload( param.c_str() ); hres = m_symbols->Reload( param.c_str() );
if ( FAILED( hres ) ) if ( FAILED( hres ) )
throw DbgException("IDebugSymbols::Reload failed" ); throw DbgException("IDebugSymbols::Reload failed" );
}
///////////////////////////////////////////////////////////////////////////////////
void
Module::reloadSymbols()
{
reloadSymbolsImpl();
m_dia.reset(); m_dia.reset();
m_dia = pyDia::GlobalScope::loadPdb( getPdbName() ); m_dia = pyDia::GlobalScope::loadPdb( getPdbName() );

View File

@ -96,6 +96,10 @@ public:
private: private:
void
reloadSymbolsImpl();
ULONG getRvaByName(const std::string &symName); ULONG getRvaByName(const std::string &symName);
BaseTypeVariant getValue() { BaseTypeVariant getValue() {