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