pykd

Форк
0
/
thrdctxtest.py 
33 строки · 1.5 Кб
1
"""Tests of thread context"""
2

3
import unittest
4
import target
5
import pykd
6

7
class ThreadContextTest( unittest.TestCase ):
8
    def testCurrentThreadContext( self ):
9
        """Some checks of current thread context content"""
10
        ctx = pykd.getContext()
11
#        for reg in ctx:
12
#            regName = ""
13
#            if ctx.processorType() == "X86":
14
#                regName = pykd.diaI386Regs[ reg[0] ]
15
#            else:
16
#                regName = pykd.diaAmd64Regs[ reg[0] ]
17
#            pykd.dprint( "\n" + regName + ": 0x%x " % reg[1])
18
        self.assertNotEqual( 0, len(ctx) )
19
        self.assertNotEqual( 0, ctx.ip() )
20
        self.assertNotEqual( 0, ctx.csp() )
21

22
    def testComplexRegisters( self ):
23
        """Test of "sub-"registers"""
24
        ctx = pykd.getContext()
25
        self.assertEqual( (ctx.get(pykd.CV_REG_AH) << 8) | ctx.get(pykd.CV_REG_AL), ctx.get(pykd.CV_REG_AX) )
26
        self.assertEqual( ctx.get(pykd.CV_REG_AX), ctx.get(pykd.CV_REG_EAX) & 0xffff )
27
        if ctx.processorType() == "X64":
28
            self.assertEqual( ctx.get(pykd.CV_REG_EAX), ctx.get(pykd.CV_AMD64_RAX) & 0xffffffff )
29

30
        self.assertEqual( (ctx.get(pykd.CV_REG_DH) << 8) | ctx.get(pykd.CV_REG_DL), ctx.get(pykd.CV_REG_DX) )
31
        self.assertEqual( ctx.get(pykd.CV_REG_DX), ctx.get(pykd.CV_REG_EDX) & 0xffff )
32
        if ctx.processorType() == "X64":
33
            self.assertEqual( ctx.get(pykd.CV_REG_EDX), ctx.get(pykd.CV_AMD64_RDX) & 0xffffffff )
34

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.