[0.1.x] update : module class can be used in the arithmetic expressions

git-svn-id: https://pykd.svn.codeplex.com/svn@72133 9b283d60-5439-405e-af05-b73fd8c4d996
This commit is contained in:
SND\kernelnet_cp 2011-12-09 06:57:59 +00:00 committed by Mikhail I. Izmestev
parent 3058af91a7
commit adfad183f2
3 changed files with 10 additions and 3 deletions

View File

@ -388,7 +388,7 @@ BOOST_PYTHON_MODULE( pykd )
.def("__len__", &TypedVar::getElementCount ) .def("__len__", &TypedVar::getElementCount )
.def("__getitem__", &TypedVar::getElementByIndex ); .def("__getitem__", &TypedVar::getElementByIndex );
python::class_<Module>("module", "Class representing executable module", python::no_init ) python::class_<Module, python::bases<intBase> >("module", "Class representing executable module", python::no_init )
.def("begin", &Module::getBase, .def("begin", &Module::getBase,
"Return start address of the module" ) "Return start address of the module" )
.def("end", &Module::getEnd, .def("end", &Module::getEnd,

View File

@ -12,7 +12,7 @@ namespace pykd {
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
class Module : private DbgObject { class Module : public intBase, private DbgObject {
public: public:
@ -80,6 +80,10 @@ private:
return m_dia; return m_dia;
} }
BaseTypeVariant getValue() {
return BaseTypeVariant(m_base);
}
std::string m_name; std::string m_name;
std::string m_imageName; std::string m_imageName;

View File

@ -21,6 +21,8 @@ class ModuleTest( unittest.TestCase ):
def testBegin( self ): def testBegin( self ):
self.assertNotEqual( 0, target.module.begin() ) self.assertNotEqual( 0, target.module.begin() )
self.assertEqual( target.module.begin(), target.module )
self.assertEqual( target.module.begin() + 100, target.module + 100 )
def testEnd( self ): def testEnd( self ):
self.assertEqual( target.module.size(), target.module.end() - target.module.begin() ) self.assertEqual( target.module.size(), target.module.end() - target.module.begin() )
@ -37,7 +39,7 @@ class ModuleTest( unittest.TestCase ):
pykd.loadModule( target.module.begin() - 0x10 ) pykd.loadModule( target.module.begin() - 0x10 )
self.assertTrue( False ) self.assertTrue( False )
except pykd.BaseException: except pykd.BaseException:
self.assertTrue( True ) self.assertTrue( True )
self.assertNotEqual( None, pykd.loadModule( target.module.begin() ) ) self.assertNotEqual( None, pykd.loadModule( target.module.begin() ) )
self.assertNotEqual( None, pykd.loadModule( target.module.begin() + 0x10) ) self.assertNotEqual( None, pykd.loadModule( target.module.begin() + 0x10) )
@ -61,3 +63,4 @@ class ModuleTest( unittest.TestCase ):
def testType( self ): def testType( self ):
self.assertEqual( "structTest", target.module.type("structTest").name() ); self.assertEqual( "structTest", target.module.type("structTest").name() );
self.assertEqual( "structTest", target.module.type("g_structTest").name() ); self.assertEqual( "structTest", target.module.type("g_structTest").name() );