Skip to content

Commit 249a5fb

Browse files
committed
[lldb/qemu] Support setting arg0 of the debugged program
Just what it says on the box.
1 parent 6f45fe9 commit 249a5fb

File tree

3 files changed

+13
-0
lines changed

3 files changed

+13
-0
lines changed

lldb/source/Plugins/Platform/QemuUser/PlatformQemuUser.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,10 @@ lldb::ProcessSP PlatformQemuUser::DebugProcess(ProcessLaunchInfo &launch_info,
175175
} while (FileSystem::Instance().Exists(socket_path));
176176

177177
Args args({qemu.GetPath(), "-g", socket_path});
178+
if (!launch_info.GetArg0().empty()) {
179+
args.AppendArgument("-0");
180+
args.AppendArgument(launch_info.GetArg0());
181+
}
178182
args.AppendArguments(GetGlobalProperties().GetEmulatorArgs());
179183
args.AppendArgument("--");
180184
args.AppendArgument(launch_info.GetExecutableFile().GetPath());

lldb/test/API/qemu/TestQemuLaunch.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,3 +241,11 @@ def cleanup():
241241
"%s=from platform,%s=from target" % (var(1), var(2)))
242242
self.assertEqual(state["environ"]["QEMU_UNSET_ENV"],
243243
"%s,%s,QEMU_SET_ENV,QEMU_UNSET_ENV" % (var(3), var(4)))
244+
245+
def test_arg0(self):
246+
target = self._create_target()
247+
self.runCmd("settings set target.arg0 ARG0")
248+
state = self._run_and_get_state(target)
249+
250+
self.assertEqual(state["program"], self.getBuildArtifact())
251+
self.assertEqual(state["0"], "ARG0")

lldb/test/API/qemu/qemu.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ def main():
5656
parser = argparse.ArgumentParser(description=_description,
5757
formatter_class=argparse.RawDescriptionHelpFormatter)
5858
parser.add_argument('-g', metavar="unix-socket", required=True)
59+
parser.add_argument('-0', metavar="arg0")
5960
parser.add_argument('-fake-arg', dest="fake-arg")
6061
parser.add_argument('program', help="The program to 'emulate'.")
6162
parser.add_argument("args", nargs=argparse.REMAINDER)

0 commit comments

Comments
 (0)