예제 #1
0
def parse_args():
    parser = gdbrunner.ArgumentParser()

    group = parser.add_argument_group(title="attach target")
    group = group.add_mutually_exclusive_group(required=True)
    group.add_argument(
        "-p", dest="target_pid", metavar="PID", type=int,
        help="attach to a process with specified PID")
    group.add_argument(
        "-n", dest="target_name", metavar="NAME",
        help="attach to a process with specified name")
    group.add_argument(
        "-r", dest="run_cmd", metavar="CMD", nargs=argparse.REMAINDER,
        help="run a binary on the device, with args")

    parser.add_argument(
        "--port", nargs="?", default="5039",
        help="override the port used on the host [default: 5039]")
    parser.add_argument(
        "--user", nargs="?", default="root",
        help="user to run commands as on the device [default: root]")
    parser.add_argument(
        "--setup-forwarding", default=None, choices=["gdb", "vscode"],
        help=("Setup the gdbserver and port forwarding. Prints commands or " +
              ".vscode/launch.json configuration needed to connect the debugging " +
              "client to the server."))

    parser.add_argument(
        "--env", nargs=1, action="append", metavar="VAR=VALUE",
        help="set environment variable when running a binary")

    return parser.parse_args()
예제 #2
0
def parse_args():
    parser = gdbrunner.ArgumentParser()

    group = parser.add_argument_group(title="attach target")
    group = group.add_mutually_exclusive_group(required=True)
    group.add_argument("-p",
                       dest="target_pid",
                       metavar="PID",
                       type=int,
                       help="attach to a process with specified PID")
    group.add_argument("-n",
                       dest="target_name",
                       metavar="NAME",
                       help="attach to a process with specified name")
    group.add_argument("-r",
                       dest="run_cmd",
                       metavar="CMD",
                       nargs=argparse.REMAINDER,
                       help="run a binary on the device, with args")

    parser.add_argument(
        "--port",
        nargs="?",
        default="5039",
        help="override the port used on the host [default: 5039]")
    parser.add_argument(
        "--user",
        nargs="?",
        default="root",
        help="user to run commands as on the device [default: root]")

    return parser.parse_args()
예제 #3
0
def parse_args():
    parser = gdbrunner.ArgumentParser()

    group = parser.add_argument_group(title="attach target")
    group = group.add_mutually_exclusive_group(required=True)
    group.add_argument("-p",
                       dest="target_pid",
                       metavar="PID",
                       type=int,
                       help="attach to a process with specified PID")
    group.add_argument("-n",
                       dest="target_name",
                       metavar="NAME",
                       help="attach to a process with specified name")
    group.add_argument("-r",
                       dest="run_cmd",
                       metavar="CMD",
                       nargs=argparse.REMAINDER,
                       help="run a binary on the device, with args")

    parser.add_argument(
        "--port",
        nargs="?",
        default="5039",
        help="override the port used on the host [default: 5039]")
    parser.add_argument(
        "--user",
        nargs="?",
        default="root",
        help="user to run commands as on the device [default: root]")
    parser.add_argument(
        "--setup-forwarding",
        default=None,
        choices=["gdb", "lldb", "vscode", "vscode-gdb", "vscode-lldb"],
        help=
        ("Setup the gdbserver/lldb-server and port forwarding. Prints commands or "
         +
         ".vscode/launch.json configuration needed to connect the debugging " +
         "client to the server. If 'gdb' and 'vscode-gdb' are only valid if " +
         "'--no-lldb' is passed. 'vscode' with llbd and 'vscode-lldb' both " +
         "require the 'vadimcn.vscode-lldb' extension. 'vscode' with '--no-lldb' "
         + "and 'vscode-gdb' require the 'ms-vscode.cpptools' extension."))

    lldb_group = parser.add_mutually_exclusive_group()
    lldb_group.add_argument("--lldb", action="store_true", help="Use lldb.")
    lldb_group.add_argument("--no-lldb",
                            action="store_true",
                            help="Do not use lldb.")

    parser.add_argument("--env",
                        nargs=1,
                        action="append",
                        metavar="VAR=VALUE",
                        help="set environment variable when running a binary")

    return parser.parse_args()