gdbclient.py: Add --env flag.

This flag allows users to set environment variables when running
a binary.

Change-Id: I01e2729c372da2e231bda86accc805495dcfdc06
This commit is contained in:
Peter Collingbourne
2018-12-19 20:51:42 -08:00
parent a87126ad77
commit 63bf1087eb

View File

@@ -65,6 +65,10 @@ def parse_args():
"--user", nargs="?", default="root", "--user", nargs="?", default="root",
help="user to run commands as on the device [default: root]") help="user to run commands as on the device [default: root]")
parser.add_argument(
"--env", nargs=1, action="append", metavar="VAR=VALUE",
help="set environment variable when running a binary")
return parser.parse_args() return parser.parse_args()
@@ -246,13 +250,17 @@ def main():
tracer_pid = get_tracer_pid(device, pid) tracer_pid = get_tracer_pid(device, pid)
if tracer_pid == 0: if tracer_pid == 0:
cmd_prefix = args.su_cmd
if args.env:
cmd_prefix += ['env'] + [v[0] for v in args.env]
# Start gdbserver. # Start gdbserver.
gdbserver_local_path = get_gdbserver_path(root, arch) gdbserver_local_path = get_gdbserver_path(root, arch)
gdbserver_remote_path = "/data/local/tmp/{}-gdbserver".format(arch) gdbserver_remote_path = "/data/local/tmp/{}-gdbserver".format(arch)
gdbrunner.start_gdbserver( gdbrunner.start_gdbserver(
device, gdbserver_local_path, gdbserver_remote_path, device, gdbserver_local_path, gdbserver_remote_path,
target_pid=pid, run_cmd=run_cmd, debug_socket=debug_socket, target_pid=pid, run_cmd=run_cmd, debug_socket=debug_socket,
port=args.port, run_as_cmd=args.su_cmd) port=args.port, run_as_cmd=cmd_prefix)
else: else:
print "Connecting to tracing pid {} using local port {}".format(tracer_pid, args.port) print "Connecting to tracing pid {} using local port {}".format(tracer_pid, args.port)
gdbrunner.forward_gdbserver_port(device, local=args.port, gdbrunner.forward_gdbserver_port(device, local=args.port,