From a70ef834b0755a19d8b6f871518f0c46e65ff2a4 Mon Sep 17 00:00:00 2001 From: "SND\\kernelnet_cp" Date: Tue, 24 Apr 2012 13:19:27 +0000 Subject: [PATCH] [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 --- pykd/typedvar.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pykd/typedvar.cpp b/pykd/typedvar.cpp index eca34ec..1c0a298 100644 --- a/pykd/typedvar.cpp +++ b/pykd/typedvar.cpp @@ -256,10 +256,9 @@ std::string UdtTypedVar::print() if ( fieldType->isStaticMember() ) { - if ( fieldType->getStaticOffset() == 0 ) - throw ImplementException( __FILE__, __LINE__, "Fix ME"); + if ( fieldType->getStaticOffset() != 0 ) + 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(); } else @@ -267,9 +266,14 @@ std::string UdtTypedVar::print() 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::left << std::setw( 20 ) << std::setfill(' ') << m_typeInfo->getFieldNameByIndex(i) << ':'; sstr << " " << std::left << fieldType->getName(); - sstr << " " << fieldVar->printValue(); + + if ( fieldVar ) + sstr << " " << fieldVar->printValue(); + else + sstr << " failed to get value"; sstr << std::endl; }