1#!/usr/bin/env python3 2# 3# Copyright 2020, Data61, CSIRO (ABN 41 687 119 230) 4# 5# SPDX-License-Identifier: BSD-2-Clause 6# 7 8import subprocess 9import sys 10import argparse 11import signal 12 13def parse_args(): 14 parser = argparse.ArgumentParser() 15 parser.add_argument('-b', '--binary', dest='gdb_binary', type=str, 16 help='GDB binary', default='@GDB_BINARY@') 17 parser.add_argument('-f', '--file', dest='target_executable', type=str, 18 help='File to be passed to GDB', default='@QEMU_SIM_INITRD_FILE@') 19 parser.add_argument('--extra-gdb-args', dest='extra_gdb_args', type=str, 20 help='Additional arguments to pass to gdb', default='') 21 args = parser.parse_args() 22 return args 23 24if __name__ == "__main__": 25 args = parse_args() 26 27 gdb_command_opts = [args.gdb_binary, args.extra_gdb_args, '-ex "target remote :1234"', args.target_executable] 28 gdb_command = " ".join(gdb_command_opts) 29 30 print(gdb_command) 31 # Extra newline to make the command easier to see 32 print("\n") 33 34 # Ignore SIGINT/Ctrl-C here and forward it to the gdb instance 35 signal.signal(signal.SIGINT, signal.SIG_IGN) 36 37 subprocess.call(gdb_command, shell=True) 38