1*951ededfSThomas Huth#!/usr/bin/env python3 2*951ededfSThomas Huth# 3*951ededfSThomas Huth# SPDX-License-Identifier: GPL-2.0-or-later 4*951ededfSThomas Huth# 5*951ededfSThomas Huth# Reverse debugging test 6*951ededfSThomas Huth# 7*951ededfSThomas Huth# Copyright (c) 2020 ISP RAS 8*951ededfSThomas Huth# 9*951ededfSThomas Huth# Author: 10*951ededfSThomas Huth# Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru> 11*951ededfSThomas Huth# 12*951ededfSThomas Huth# This work is licensed under the terms of the GNU GPL, version 2 or 13*951ededfSThomas Huth# later. See the COPYING file in the top-level directory. 14*951ededfSThomas Huth 15*951ededfSThomas Huthfrom qemu_test import skipIfMissingImports, skipFlakyTest 16*951ededfSThomas Huthfrom reverse_debugging import ReverseDebugging 17*951ededfSThomas Huth 18*951ededfSThomas Huth 19*951ededfSThomas Huth@skipIfMissingImports('avocado.utils') 20*951ededfSThomas Huthclass ReverseDebugging_X86_64(ReverseDebugging): 21*951ededfSThomas Huth 22*951ededfSThomas Huth REG_PC = 0x10 23*951ededfSThomas Huth REG_CS = 0x12 24*951ededfSThomas Huth def get_pc(self, g): 25*951ededfSThomas Huth return self.get_reg_le(g, self.REG_PC) \ 26*951ededfSThomas Huth + self.get_reg_le(g, self.REG_CS) * 0x10 27*951ededfSThomas Huth 28*951ededfSThomas Huth @skipFlakyTest("https://gitlab.com/qemu-project/qemu/-/issues/2922") 29*951ededfSThomas Huth def test_x86_64_pc(self): 30*951ededfSThomas Huth self.set_machine('pc') 31*951ededfSThomas Huth # start with BIOS only 32*951ededfSThomas Huth self.reverse_debugging() 33*951ededfSThomas Huth 34*951ededfSThomas Huth 35*951ededfSThomas Huthif __name__ == '__main__': 36*951ededfSThomas Huth ReverseDebugging.main() 37