Author: Pavel Labath Date: 2021-12-31T10:57:35+01:00 New Revision: 249a5fb005ea27b57d12fc4425d6f1039d85c1cb
URL: https://github.com/llvm/llvm-project/commit/249a5fb005ea27b57d12fc4425d6f1039d85c1cb DIFF: https://github.com/llvm/llvm-project/commit/249a5fb005ea27b57d12fc4425d6f1039d85c1cb.diff LOG: [lldb/qemu] Support setting arg0 of the debugged program Just what it says on the box. Added: Modified: lldb/source/Plugins/Platform/QemuUser/PlatformQemuUser.cpp lldb/test/API/qemu/TestQemuLaunch.py lldb/test/API/qemu/qemu.py Removed: ################################################################################ diff --git a/lldb/source/Plugins/Platform/QemuUser/PlatformQemuUser.cpp b/lldb/source/Plugins/Platform/QemuUser/PlatformQemuUser.cpp index 572a5b39985ec..84e10042a97c7 100644 --- a/lldb/source/Plugins/Platform/QemuUser/PlatformQemuUser.cpp +++ b/lldb/source/Plugins/Platform/QemuUser/PlatformQemuUser.cpp @@ -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()); diff --git a/lldb/test/API/qemu/TestQemuLaunch.py b/lldb/test/API/qemu/TestQemuLaunch.py index 01c4143c9e77e..e27d7a70fa0bb 100644 --- a/lldb/test/API/qemu/TestQemuLaunch.py +++ b/lldb/test/API/qemu/TestQemuLaunch.py @@ -241,3 +241,11 @@ def cleanup(): "%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") diff --git a/lldb/test/API/qemu/qemu.py b/lldb/test/API/qemu/qemu.py index a74976881cbc5..05fbfddc017bc 100755 --- a/lldb/test/API/qemu/qemu.py +++ b/lldb/test/API/qemu/qemu.py @@ -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) _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits