Hi Yin,
the problem with your approach is that you would not simply be able to do the 
API equivalent of “set args” and then return.
If you are going down the SBLaunchInfo route, you will also need to launch 
through the API (what you do is make an SBLaunchInfo and then pass it to 
SBTarget::Launch, and get an SBProcess back)
Once you are in the business of launching through the API, you might also want 
to start listening to process events for your launched inferior
It seems like, pending a fix for the settings set bugzilla issue (thanks for 
filing, btw), going the API way might be your best bet, as I think others have 
pointed you at

A good example of how to do that is in examples/python/process_events.py, or 
the whole lldb-perf project if you’re more of a C++ developer

Enrico Granata
📩 egranata@.com
☎️ 27683

On Oct 7, 2013, at 4:03 PM, Yin Ma <[email protected]> wrote:

> Hi Enrico,
>  
> Since there is no way to work around –Xxm100M problem, I know we can define
> our own command. I am wondering if it is possible to expend set command in 
> llvm
> by importing a python file, like set args  xxx, it will call my python 
> function
> to use API to do the job? If yes, could you provide me a simple example about 
> how
> to do this?
>  
> Thanks,
>  
> Yin
>  
> From: Enrico Granata [mailto:[email protected]] 
> Sent: Monday, October 07, 2013 2:55 PM
> To: Yin Ma
> Cc: lldb-dev
> Subject: Re: [lldb-dev] How to set argument -Xxm100M for an executable?
>  
> On Oct 7, 2013, at 2:27 PM, Yin Ma <[email protected]> wrote:
> 
> 
> Hi
>  
> To set up a run argument, based on the document, it should be
> Settings set target.run-args  , like gdb set args
>  
> However, no matter how, I cannot set my argument to –Xxm100M
> I tried
> Settings set target.run-args –Xxm100M
> Lldb: invalid option – X
>  
> I also tried
> Settings set target.run-args “-Xxm100M”
> Doesn’t work.
>  
>  
> Unfortunately you seem to be right. The only way I have been able to make 
> this work is by saying:
> (lldb) sett set target.run-args -- --Xxm100M
> (lldb) r
> Process 5112 launched: '/private/tmp/args' (x86_64)
> argv[0] = args
> argv[1] = --
> argv[2] = --Xxm100M
>  
> but as you can see, this causes a spurious - - (double dash) to be passed 
> down to your inferior process
> Seems worth of a bugzilla to me. With that said, while I have not tried it, I 
> am kinda optimistic that SBLaunchInfo (the API class) would not be subject to 
> the same bug, since this is more of a command-line issue than anything
> 
> 
> Could somebody let me know how to correctly set an argument.
>  
> On gdb, if we run
> Set args
> This means no argument
> However, under lldb
> Settings set target.run-args
> It will report an error
>  
> Is this a good behavior?
>  
>  
> In LLDB, you would say 
> (lldb) sett set target.run-args ""
>  
> Since our settings set command is meant to set any kind of setting, it makes 
> sense that we ask for an argument. If we were to allow setting set <foo> <end 
> of command>, we would probably need a way to know which is the “default 
> value” for any specific setting. Feel free to file an ER bugzilla for that too
>  
> Thanks,
>  
> Yin
> _______________________________________________
> lldb-dev mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>  
> Enrico Granata
> 📩 egranata@.com
> ☎️ 27683

_______________________________________________
lldb-dev mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Reply via email to