2011-08-18 15:42:23 +08:00
|
|
|
|
2012-01-24 14:41:36 +08:00
|
|
|
import unittest
|
|
|
|
import target
|
|
|
|
import pykd
|
2011-08-18 15:42:23 +08:00
|
|
|
|
2012-01-24 14:41:36 +08:00
|
|
|
class CpuRegTest( unittest.TestCase ):
|
2011-08-18 15:42:23 +08:00
|
|
|
|
2012-01-24 14:41:36 +08:00
|
|
|
def testCtor(self):
|
|
|
|
if pykd.is64bitSystem():
|
|
|
|
pykd.reg("rax")
|
|
|
|
else:
|
|
|
|
pykd.reg("eax")
|
|
|
|
|
|
|
|
pykd.reg( 0 )
|
|
|
|
|
|
|
|
def testFormat(self):
|
|
|
|
self.assertEqual( "%d" % int(pykd.reg(0)), "%d" % pykd.reg(0) )
|
|
|
|
self.assertEqual( "%x" % int(pykd.reg(0)), "%x" % pykd.reg(0) )
|
2011-08-18 15:42:23 +08:00
|
|
|
|
2012-01-24 14:41:36 +08:00
|
|
|
def testGpr(self):
|
|
|
|
if pykd.is64bitSystem():
|
|
|
|
pykd.reg("rax")
|
|
|
|
pykd.reg("rbx")
|
|
|
|
pykd.reg("rcx")
|
|
|
|
pykd.reg("rdx")
|
|
|
|
pykd.reg("rdi")
|
|
|
|
pykd.reg("rsi")
|
|
|
|
pykd.reg("rbp")
|
|
|
|
pykd.reg("rsp")
|
|
|
|
pykd.reg("rip")
|
|
|
|
else:
|
|
|
|
pykd.reg("eax")
|
|
|
|
pykd.reg("ebx")
|
|
|
|
pykd.reg("ecx")
|
|
|
|
pykd.reg("edx")
|
|
|
|
pykd.reg("edi")
|
|
|
|
pykd.reg("esi")
|
|
|
|
pykd.reg("ebp")
|
|
|
|
pykd.reg("esp")
|
|
|
|
pykd.reg("eip")
|
|
|
|
|
|
|
|
|
|
|
|
def testFloatRegister(self):
|
|
|
|
"TODO: support float point regsiters"
|
|
|
|
self.assertRaises( pykd.BaseException, pykd.reg, "st0" )
|
2011-08-18 15:42:23 +08:00
|
|
|
|
2012-01-24 14:41:36 +08:00
|
|
|
def testMmxRegister(self):
|
|
|
|
"TODO: support MMX regsiters"
|
|
|
|
self.assertRaises( pykd.BaseException, pykd.reg, "mmx0" )
|
2011-08-18 15:42:23 +08:00
|
|
|
|