analog of "gdb --args"

gdb has a nice option --args, which allows to specify additional parameters for executable like this:

    gdb --args /path/to/executable arg1 arg2 --param1

is there similar option for lldb?

Eh, looks like the help isn't quite right.

The way it works is that all the arguments after the last recognized argument are treated as program arguments. You don't need to provide a flag indicating this. In terms of the general lldb command syntax these would just be considered the arguments to the "lldb" command...

So for instance:

$ lldb args foo bar baz
Current executable set to 'args' (x86_64).
(lldb) source list -n main
File: /tmp/args.c.
   1 int main (int argc, char ** argv)
   2 {
   3 int i;
   4 for (i = 0; i < argc; i++)
   5 printf ("Arg[%d]: \"%s\"\n", i, argv[i]);
   7 return 0;
   8 }
(lldb) run
Process 27956 launched: '/private/tmp/args' (x86_64)
(lldb) Arg[0]: "/private/tmp/args"
Arg[1]: "foo"
Arg[2]: "bar"
Arg[3]: "baz"
(lldb) Process 27956 exited with status = 0 (0x00000000)

There are two little tricks. If you specify the file to be debugged with the -f argument, then the remaining arguments start at argv[1], otherwise they start at argv[0]. So the following is equivalent to the first command:

$ lldb -f args foo bar baz

And the lldb command syntax in general allows flags and arguments to be intermixed, so if want to pass flag-like arguments to your program, you have to terminate the actual flags with "--". So:

$ lldb -- args -foo -bar -baz

would be correct.

Hope this helps,


this last example is exactly what I need