| #!/usr/bin/env python3 |
| # |
| # Copyright (c) 2020 Intel Corporation |
| # |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| from gdbstubs.arch.x86 import GdbStub_x86 |
| from gdbstubs.arch.x86_64 import GdbStub_x86_64 |
| from gdbstubs.arch.arm_cortex_m import GdbStub_ARM_CortexM |
| from gdbstubs.arch.risc_v import GdbStub_RISC_V |
| from gdbstubs.arch.xtensa import GdbStub_Xtensa |
| |
| class TgtCode: |
| UNKNOWN = 0 |
| X86 = 1 |
| X86_64 = 2 |
| ARM_CORTEX_M = 3 |
| RISC_V = 4 |
| XTENSA = 5 |
| |
| def get_gdbstub(logfile, elffile): |
| stub = None |
| |
| tgt_code = logfile.log_hdr['tgt_code'] |
| |
| if tgt_code == TgtCode.X86: |
| stub = GdbStub_x86(logfile=logfile, elffile=elffile) |
| elif tgt_code == TgtCode.X86_64: |
| stub = GdbStub_x86_64(logfile=logfile, elffile=elffile) |
| elif tgt_code == TgtCode.ARM_CORTEX_M: |
| stub = GdbStub_ARM_CortexM(logfile=logfile, elffile=elffile) |
| elif tgt_code == TgtCode.RISC_V: |
| stub = GdbStub_RISC_V(logfile=logfile, elffile=elffile) |
| elif tgt_code == TgtCode.XTENSA: |
| stub = GdbStub_Xtensa(logfile=logfile, elffile=elffile) |
| |
| return stub |