[0.1.x] fixed : temporary workaround for printing out static const class's members

git-svn-id: https://pykd.svn.codeplex.com/svn@75761 9b283d60-5439-405e-af05-b73fd8c4d996
This commit is contained in:
SND\kernelnet_cp 2012-04-24 13:19:27 +00:00 committed by Mikhail I. Izmestev
parent 399dccebd9
commit a70ef834b0

View File

@ -256,10 +256,9 @@ std::string UdtTypedVar::print()
if ( fieldType->isStaticMember() ) if ( fieldType->isStaticMember() )
{ {
if ( fieldType->getStaticOffset() == 0 ) if ( fieldType->getStaticOffset() != 0 )
throw ImplementException( __FILE__, __LINE__, "Fix ME"); fieldVar = TypedVar::getTypedVar( m_client, fieldType, VarDataMemory::factory(m_dataSpaces, fieldType->getStaticOffset() ) );
fieldVar = TypedVar::getTypedVar( m_client, fieldType, VarDataMemory::factory(m_dataSpaces, fieldType->getStaticOffset() ) );
sstr << " =" << std::right << std::setw(4) << std::setfill('0') << std::hex << fieldType->getStaticOffset(); sstr << " =" << std::right << std::setw(4) << std::setfill('0') << std::hex << fieldType->getStaticOffset();
} }
else else
@ -267,9 +266,14 @@ std::string UdtTypedVar::print()
fieldVar = TypedVar::getTypedVar( m_client, fieldType, m_varData->fork(fieldType->getOffset()) ); fieldVar = TypedVar::getTypedVar( m_client, fieldType, m_varData->fork(fieldType->getOffset()) );
sstr << " +" << std::right << std::setw(4) << std::setfill('0') << std::hex << fieldType->getOffset(); sstr << " +" << std::right << std::setw(4) << std::setfill('0') << std::hex << fieldType->getOffset();
} }
sstr << " " << std::left << std::setw( 20 ) << std::setfill(' ') << m_typeInfo->getFieldNameByIndex(i) << ':'; sstr << " " << std::left << std::setw( 20 ) << std::setfill(' ') << m_typeInfo->getFieldNameByIndex(i) << ':';
sstr << " " << std::left << fieldType->getName(); sstr << " " << std::left << fieldType->getName();
sstr << " " << fieldVar->printValue();
if ( fieldVar )
sstr << " " << fieldVar->printValue();
else
sstr << " failed to get value";
sstr << std::endl; sstr << std::endl;
} }