[lldb/qemu] Support setting arg0 of the debugged program

Just what it says on the box.
This commit is contained in:
Pavel Labath 2021-12-30 15:29:00 +01:00
parent 6f45fe9851
commit 249a5fb005
3 changed files with 13 additions and 0 deletions

View File

@ -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());

View File

@ -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")

View File

@ -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)