On Oct 9, 2013, at 9:13 PM, Yin Ma <[email protected]> wrote: > Hi Greg, > > Thank you for explaining all those in great detail. > > However, for working-dir, I still cannot get a solution to > work for my case. > > What I need to do is something like this > Process launch --working-dir /tmp -Xxm100M
terminate your process launch arguments with --: (lldb) process launch --working-dir /tmp -- -Xxm100M > > However, if I use process launch, -Xxm100M doesn't work > If I use run, -Xxm100M works but --working-dir doesn't work. The run command doesn't work because 'run' is aliased to 'process launch -c /bin/bash --' 'run' is a GDB compatibility thing and people in GDB didn't have any options to "run" so any arguments that looked like options would just get passed though. "process launch" uses getopt_long() (as all command with options do) so the "process launch" command has its own options. You can terminate the options (see getopt_long man page) with "--". You will see this in _all_ LLDB commands that take options. > > Is there any solution so far for this case? > > Thanks, > > Yin > > -----Original Message----- > From: Greg Clayton [mailto:[email protected]] > Sent: Wednesday, October 09, 2013 9:51 AM > To: Yin Ma > Cc: lldb-dev > Subject: Re: [lldb-dev] Question on lldb commands and remote connection > > > On Oct 9, 2013, at 8:06 AM, Yin Ma <[email protected]> wrote: > >> Hi >> >> I cannot find the command set the working directory and > > (lldb) process launch --working-dir /tmp > > If you are attaching to a GDB server that already has an existing process > running, your GDB server is responsible for setting the working directory > prior to LLDB attaching. > > If you start GDB server with no executable, then you can use the LLDB > specific packets for setting environment variables and setting the working > directory, but most GDB servers don't support that. Let me know if you want > to know more about that. > > >> The command to set temporary breakpoint like tbreak in >> Gdb. > > (lldb) help tbreak > Set a one shot breakpoint using a regular expression to specify the > location, where <linenum> is in decimal and <address> is in hex. This > command takes 'raw' input (no need to quote stuff). > > Syntax: _regexp-tbreak [<filename>:<linenum>] > _regexp-break [<linenum>] > _regexp-break [<address>] > _regexp-break <...> > > 'tbreak' is an abbreviation for '_regexp-tbreak' > > >> >> For remote connection, I only find gdb-remote, which based >> On manual is target remote. But I cannot find about how to >> Use it and those matching control commands >> target extended-remote > > LLDB doesn't need to switch targets. To connect to a remote GDB server: > > 1 - launch remote GDB server > > remote% debugserver local:1234 -- /bin/ls -lAF > > 2 - launch lldb and attach > > local% lldb > (lldb) process connect --plugin gdb-remote connect://remote:1234 > > The command below is equivalent to the above command: > > (lldb) gdb-remote remote:1234 > > "gdb-remote" is just a regex alias that will run "process connect". > >> disconnect > > (lldb) process detach > >> monitor exit > > I have no idea what this does. > >> set remote exec-file > > This is where you want to use the python API, but you can do this via the > "script" command line command. Lets say you have a local copy of "/bin/ls" > for your remote system on your current machine at "/tmp/ls". When you launch > lldb you would use the local copy: > > % lldb > (lldb) target create --platform remote-macosx /tmp/ls > > When you can set the remote path: > > (lldb) script exe_module = lldb.target.FindModule(lldb.SBFileSpec('/tmp/ls', > false)); exe_module.SetPlatformFileSpec(lldb.SBFileSpec('/bin/ls', False)) > >> >> Could Anyone tell me what they are? >> >> Thanks, >> >> Yin >> >> >> >> _______________________________________________ >> lldb-dev mailing list >> [email protected] >> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev > _______________________________________________ lldb-dev mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
