forked from OSchip/llvm-project
[lldb/qemu] Support setting arg0 of the debugged program
Just what it says on the box.
This commit is contained in:
parent
6f45fe9851
commit
249a5fb005
|
@ -175,6 +175,10 @@ lldb::ProcessSP PlatformQemuUser::DebugProcess(ProcessLaunchInfo &launch_info,
|
|||
} while (FileSystem::Instance().Exists(socket_path));
|
||||
|
||||
Args args({qemu.GetPath(), "-g", socket_path});
|
||||
if (!launch_info.GetArg0().empty()) {
|
||||
args.AppendArgument("-0");
|
||||
args.AppendArgument(launch_info.GetArg0());
|
||||
}
|
||||
args.AppendArguments(GetGlobalProperties().GetEmulatorArgs());
|
||||
args.AppendArgument("--");
|
||||
args.AppendArgument(launch_info.GetExecutableFile().GetPath());
|
||||
|
|
|
@ -241,3 +241,11 @@ class TestQemuLaunch(TestBase):
|
|||
"%s=from platform,%s=from target" % (var(1), var(2)))
|
||||
self.assertEqual(state["environ"]["QEMU_UNSET_ENV"],
|
||||
"%s,%s,QEMU_SET_ENV,QEMU_UNSET_ENV" % (var(3), var(4)))
|
||||
|
||||
def test_arg0(self):
|
||||
target = self._create_target()
|
||||
self.runCmd("settings set target.arg0 ARG0")
|
||||
state = self._run_and_get_state(target)
|
||||
|
||||
self.assertEqual(state["program"], self.getBuildArtifact())
|
||||
self.assertEqual(state["0"], "ARG0")
|
||||
|
|
|
@ -56,6 +56,7 @@ def main():
|
|||
parser = argparse.ArgumentParser(description=_description,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter)
|
||||
parser.add_argument('-g', metavar="unix-socket", required=True)
|
||||
parser.add_argument('-0', metavar="arg0")
|
||||
parser.add_argument('-fake-arg', dest="fake-arg")
|
||||
parser.add_argument('program', help="The program to 'emulate'.")
|
||||
parser.add_argument("args", nargs=argparse.REMAINDER)
|
||||
|
|
Loading…
Reference in New Issue