mirror of
https://github.com/ivellioscolin/pykd.git
synced 2025-04-20 03:23:23 +08:00
[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
This commit is contained in:
parent
17f8fb721e
commit
4231325aab
@ -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
|
version 0.1.0.12 24/04/2012
|
||||||
|
|
||||||
[+] added : get/set load address for DIA global scope
|
[+] added : get/set load address for DIA global scope
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#define PYKD_VERSION_MAJOR 0
|
#define PYKD_VERSION_MAJOR 0
|
||||||
#define PYKD_VERSION_MINOR 1
|
#define PYKD_VERSION_MINOR 1
|
||||||
#define PYKD_VERSION_SUBVERSION 0
|
#define PYKD_VERSION_SUBVERSION 0
|
||||||
#define PYKD_VERSION_BUILDNO 12
|
#define PYKD_VERSION_BUILDNO 13
|
||||||
|
|
||||||
|
|
||||||
#define __VER_STR2__(x) #x
|
#define __VER_STR2__(x) #x
|
||||||
|
@ -18,7 +18,7 @@ def printNdisObj():
|
|||||||
ndisMajorVersion = ptrByte( ndis.NdisGetVersion + 1 )
|
ndisMajorVersion = ptrByte( ndis.NdisGetVersion + 1 )
|
||||||
ndisMinorVersion = ptrByte( ndis.NdisGetVersion + 3 )
|
ndisMinorVersion = ptrByte( ndis.NdisGetVersion + 3 )
|
||||||
|
|
||||||
mpList = typedVarList( ndis.ndisMiniportList, "ndis", "_NDIS_MINIPORT_BLOCK", "NextGlobalMiniport" )
|
mpList = ndis.typedVarList( ndis.ndisMiniportList, "_NDIS_MINIPORT_BLOCK", "NextGlobalMiniport" )
|
||||||
|
|
||||||
printBreakLine()
|
printBreakLine()
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ def printNdisObj():
|
|||||||
|
|
||||||
while lwf != 0:
|
while lwf != 0:
|
||||||
|
|
||||||
filt = typedVar( "ndis", "_NDIS_FILTER_BLOCK", lwf )
|
filt = typedVar( "ndis!_NDIS_FILTER_BLOCK", lwf )
|
||||||
|
|
||||||
dprintln( "%s\t<link cmd=\"dt ndis!_NDIS_FILTER_BLOCK %x\">NDIS_FILTER_BLOCK( %x )</link>" % ( loadUnicodeString(filt.FilterFriendlyName), filt.getAddress(), filt.getAddress() ), True )
|
dprintln( "%s\t<link cmd=\"dt ndis!_NDIS_FILTER_BLOCK %x\">NDIS_FILTER_BLOCK( %x )</link>" % ( loadUnicodeString(filt.FilterFriendlyName), filt.getAddress(), filt.getAddress() ), True )
|
||||||
|
|
||||||
@ -51,9 +51,9 @@ def printNdisObj():
|
|||||||
|
|
||||||
while opn != 0:
|
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 \t<link cmd=\"dt ndis!_NDIS_OPEN_BLOCK %x\">NDIS_OPEN_BLOCK( %x )</link>" % ( loadUnicodeString( proto.Name.getAddress() ), openBlock.getAddress(), openBlock.getAddress() ), True )
|
dprint( "%s \t<link cmd=\"dt ndis!_NDIS_OPEN_BLOCK %x\">NDIS_OPEN_BLOCK( %x )</link>" % ( loadUnicodeString( proto.Name.getAddress() ), openBlock.getAddress(), openBlock.getAddress() ), True )
|
||||||
dprintln( "\t<link cmd=\"dt ndis!_NDIS_PROTOCOL_BLOCK %x\">NDIS_PROTOCOL_BLOCK( %x )</link>" % ( proto.getAddress(), proto.getAddress() ), True )
|
dprintln( "\t<link cmd=\"dt ndis!_NDIS_PROTOCOL_BLOCK %x\">NDIS_PROTOCOL_BLOCK( %x )</link>" % ( proto.getAddress(), proto.getAddress() ), True )
|
||||||
|
@ -237,11 +237,16 @@ class TypedVarTest( unittest.TestCase ):
|
|||||||
self.assertTrue( str(target.module.typedVar( "g_unTypedPtrToFunction" ) ) )
|
self.assertTrue( str(target.module.typedVar( "g_unTypedPtrToFunction" ) ) )
|
||||||
|
|
||||||
def testStaticField(self):
|
def testStaticField(self):
|
||||||
ti = pykd.typedVar( "g_classChild" )
|
tv = pykd.typedVar( "g_classChild" )
|
||||||
self.assertEqual( 200, ti.m_staticField )
|
self.assertEqual( 200, tv.m_staticField )
|
||||||
self.assertEqual( 100, ti.m_staticConst )
|
self.assertEqual( 100, tv.m_staticConst )
|
||||||
|
|
||||||
def testAmbiguousFieldAccess(self):
|
def testAmbiguousFieldAccess(self):
|
||||||
derivedFiledVal = pykd.loadCStr( pykd.typedVar( "g_fieldSameNameStruct" ).m_field )
|
derivedFiledVal = pykd.loadCStr( pykd.typedVar( "g_fieldSameNameStruct" ).m_field )
|
||||||
self.assertEqual( derivedFiledVal, "toaster" )
|
self.assertEqual( derivedFiledVal, "toaster" )
|
||||||
print target.module.type("fieldSameNameStruct")
|
print target.module.type("fieldSameNameStruct")
|
||||||
|
|
||||||
|
def testDiamondVirtualInherit(self):
|
||||||
|
tv = pykd.typedVar( "g_virtChild" )
|
||||||
|
print tv
|
||||||
|
self.assertEqual( -100, tv.m_baseField )
|
||||||
|
@ -184,3 +184,4 @@ class TypeInfoTest( unittest.TestCase ):
|
|||||||
self.assertNotEqual( 0, ti.m_staticField.offset() )
|
self.assertNotEqual( 0, ti.m_staticField.offset() )
|
||||||
self.assertNotEqual( 0, ti.m_staticConst.offset() )
|
self.assertNotEqual( 0, ti.m_staticConst.offset() )
|
||||||
self.assertNotEqual( 0, ti.m_stdstr.offset() )
|
self.assertNotEqual( 0, ti.m_stdstr.offset() )
|
||||||
|
|
||||||
|
@ -335,7 +335,7 @@ public:
|
|||||||
virtual void virtFunc2() {}
|
virtual void virtFunc2() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
class VirtualChildClass : public VirtualBaseClass1, public VirtualBaseClass2
|
class VirtualChildClass : public VirtualBaseClass1, public VirtualBaseClass2, public virtual classBase
|
||||||
{
|
{
|
||||||
void virtFunc() {}
|
void virtFunc() {}
|
||||||
void virtFunc2() {}
|
void virtFunc2() {}
|
||||||
|
Loading…
Reference in New Issue
Block a user