From 4231325aab702b1b6d9326df19e6ff074f1ce897 Mon Sep 17 00:00:00 2001 From: "SND\\kernelnet_cp" Date: Thu, 17 May 2012 14:24:31 +0000 Subject: [PATCH] [0.1.x] updated : set version to 0.1.0.13 git-svn-id: https://pykd.svn.codeplex.com/svn@76402 9b283d60-5439-405e-af05-b73fd8c4d996 --- changelist.txt | 6 ++++++ pykd/pykdver.h | 2 +- snippets/ndis.py | 8 ++++---- test/scripts/typedvar.py | 11 ++++++++--- test/scripts/typeinfo.py | 1 + test/targetapp/targetapp.cpp | 2 +- 6 files changed, 21 insertions(+), 9 deletions(-) diff --git a/changelist.txt b/changelist.txt index 3411239..e4a9e83 100644 --- a/changelist.txt +++ b/changelist.txt @@ -1,3 +1,9 @@ +version 0.1.0.13 17/05/2012 + +[!] fixed : issue #10722 ( rdmsr raises exception ) +[!] fixed : issue #10763 ( member derived from different base classes ) +[!] fixed : issue #10764 ( typedVar for class does not contain field for vtable ) + version 0.1.0.12 24/04/2012 [+] added : get/set load address for DIA global scope diff --git a/pykd/pykdver.h b/pykd/pykdver.h index b3c37f1..c8ef038 100644 --- a/pykd/pykdver.h +++ b/pykd/pykdver.h @@ -2,7 +2,7 @@ #define PYKD_VERSION_MAJOR 0 #define PYKD_VERSION_MINOR 1 #define PYKD_VERSION_SUBVERSION 0 -#define PYKD_VERSION_BUILDNO 12 +#define PYKD_VERSION_BUILDNO 13 #define __VER_STR2__(x) #x diff --git a/snippets/ndis.py b/snippets/ndis.py index c110993..29b76c2 100644 --- a/snippets/ndis.py +++ b/snippets/ndis.py @@ -18,7 +18,7 @@ def printNdisObj(): ndisMajorVersion = ptrByte( ndis.NdisGetVersion + 1 ) ndisMinorVersion = ptrByte( ndis.NdisGetVersion + 3 ) - mpList = typedVarList( ndis.ndisMiniportList, "ndis", "_NDIS_MINIPORT_BLOCK", "NextGlobalMiniport" ) + mpList = ndis.typedVarList( ndis.ndisMiniportList, "_NDIS_MINIPORT_BLOCK", "NextGlobalMiniport" ) printBreakLine() @@ -37,7 +37,7 @@ def printNdisObj(): while lwf != 0: - filt = typedVar( "ndis", "_NDIS_FILTER_BLOCK", lwf ) + filt = typedVar( "ndis!_NDIS_FILTER_BLOCK", lwf ) dprintln( "%s\tNDIS_FILTER_BLOCK( %x )" % ( loadUnicodeString(filt.FilterFriendlyName), filt.getAddress(), filt.getAddress() ), True ) @@ -51,9 +51,9 @@ def printNdisObj(): while opn != 0: - openBlock = typedVar( "ndis", "_NDIS_OPEN_BLOCK", opn ) + openBlock = typedVar( "ndis!_NDIS_OPEN_BLOCK", opn ) - proto = typedVar( "ndis", "_NDIS_PROTOCOL_BLOCK", openBlock.ProtocolHandle ) + proto = typedVar( "ndis!_NDIS_PROTOCOL_BLOCK", openBlock.ProtocolHandle ) dprint( "%s \tNDIS_OPEN_BLOCK( %x )" % ( loadUnicodeString( proto.Name.getAddress() ), openBlock.getAddress(), openBlock.getAddress() ), True ) dprintln( "\tNDIS_PROTOCOL_BLOCK( %x )" % ( proto.getAddress(), proto.getAddress() ), True ) diff --git a/test/scripts/typedvar.py b/test/scripts/typedvar.py index 1c981d3..103d3e5 100644 --- a/test/scripts/typedvar.py +++ b/test/scripts/typedvar.py @@ -237,11 +237,16 @@ class TypedVarTest( unittest.TestCase ): self.assertTrue( str(target.module.typedVar( "g_unTypedPtrToFunction" ) ) ) def testStaticField(self): - ti = pykd.typedVar( "g_classChild" ) - self.assertEqual( 200, ti.m_staticField ) - self.assertEqual( 100, ti.m_staticConst ) + tv = pykd.typedVar( "g_classChild" ) + self.assertEqual( 200, tv.m_staticField ) + self.assertEqual( 100, tv.m_staticConst ) def testAmbiguousFieldAccess(self): derivedFiledVal = pykd.loadCStr( pykd.typedVar( "g_fieldSameNameStruct" ).m_field ) self.assertEqual( derivedFiledVal, "toaster" ) print target.module.type("fieldSameNameStruct") + + def testDiamondVirtualInherit(self): + tv = pykd.typedVar( "g_virtChild" ) + print tv + self.assertEqual( -100, tv.m_baseField ) diff --git a/test/scripts/typeinfo.py b/test/scripts/typeinfo.py index 4db44f0..149cfe6 100644 --- a/test/scripts/typeinfo.py +++ b/test/scripts/typeinfo.py @@ -184,3 +184,4 @@ class TypeInfoTest( unittest.TestCase ): self.assertNotEqual( 0, ti.m_staticField.offset() ) self.assertNotEqual( 0, ti.m_staticConst.offset() ) self.assertNotEqual( 0, ti.m_stdstr.offset() ) + diff --git a/test/targetapp/targetapp.cpp b/test/targetapp/targetapp.cpp index 3330dce..60a10fd 100644 --- a/test/targetapp/targetapp.cpp +++ b/test/targetapp/targetapp.cpp @@ -335,7 +335,7 @@ public: virtual void virtFunc2() {} }; -class VirtualChildClass : public VirtualBaseClass1, public VirtualBaseClass2 +class VirtualChildClass : public VirtualBaseClass1, public VirtualBaseClass2, public virtual classBase { void virtFunc() {} void virtFunc2() {}