I have only one reservation to this plan, which is that at present I only have 
one breakpoint command that shares a common set of command options.  So if we 
start overloading the meaning of -f, meaning a file in the case of file & line 
breakpoints and a restriction glob pattern for source regex breakpoints, then 
it makes command help & completion work poorly.  OTOH, I have no problem with 
-f meaning something different for "-r" breakpoints and "-f, -l" breakpoints.  

Not really sure how to do this better.  I don't think anybody would like:

(lldb) break set-file
(lldb) break set-regex
(lldb) break set-address

But that's currently the only way you could start to tease these things apart.

Jim


> On Oct 24, 2017, at 6:50 PM, Zachary Turner <ztur...@google.com> wrote:
> 
> It might be worth brainstorming if there’s ways to do this that are both 
> intuitive and don’t require more options.  As a command line user, I really 
> value my keystrokes.  
> 
> One idea would be to use a syntax that matches that of the ‘-name’ option to 
> the standard ‘find’ utility.  This way filename pattern matching would work 
> in a way familiar to almost everyone, no sb api options would need to be 
> added.
> 
> 
> 
> On Mon, Oct 23, 2017 at 6:25 PM Jim Ingham via lldb-dev 
> <lldb-dev@lists.llvm.org> wrote:
> Yeah, that would be easy to implement from the command line, maybe add a 
> --file-is-regex flag or something.
> 
> From the SB API it would be better to have something like:
> 
> SBFileList SBTarget.GetFileListMatchingRegex("regex")
> 
> Please file an enhancement request for these of hack'em in if you're so 
> motivated.
> 
> Jim
> 
> 
> > On Oct 23, 2017, at 6:13 PM, Don Hinton <hinto...@gmail.com> wrote:
> >
> > Ah, great, thanks.  I just figured the default was the same for both.
> >
> > Just wish I could use a regex for the filename as well, which would cut 
> > down the number of files about about half.
> >
> > thanks again...
> > don
> >
> > On Mon, Oct 23, 2017 at 6:02 PM, Jim Ingham <jing...@apple.com> wrote:
> > Just pass an invalid FileSpec for the source file spec, like:
> >
> > lldb.target.BreakpointCreateBySourceRegex("printf", lldb.SBFileSpec())
> >
> > and it acts the same way as the --all-files option.  That was pretty 
> > non-obvious, I'll update the docs.
> >
> > Actually, the thing you CAN'T do is get the command line behavior where 
> > lldb uses the "default file" i.e. when you run "break set -p" but don't 
> > supply a file or the --all-files option.  That seemed to me less useful for 
> > a programming interface since the default file is history dependent (it's 
> > the file with "main" in it before you run, then it's where you last set a 
> > breakpoint, or where you last stopped, etc.)  If you needed this behavior 
> > it would be better to have the target vend the default file, though right 
> > now that's really only maintained by the breakpoint command...
> >
> > Jim
> >
> >
> > > On Oct 23, 2017, at 5:31 PM, Don Hinton via lldb-dev 
> > > <lldb-dev@lists.llvm.org> wrote:
> > >
> > > The only way I've been able to do it is by using the CommandInterpreter, 
> > > i.e.,
> > >
> > >   res = lldb.SBCommandReturnObject()
> > >   lldb.debugger.GetCommandInterpreter().HandleCommand('breakpoint set -p 
> > > "diag::%s" --all-files -N %s' % (name, name), res);
> > >   lldb.debugger.GetCommandInterpreter().HandleCommand('breakpoint disable 
> > > %s' % name, res);
> > >
> > > Is this the best way to do it?  Can't seem to figure out how to use 
> > > SBTarget.BreakpointCreateBySourceRegex() for all files.
> > >
> > > thanks...
> > > don
> > > _______________________________________________
> > > lldb-dev mailing list
> > > lldb-dev@lists.llvm.org
> > > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
> >
> >
> 
> _______________________________________________
> lldb-dev mailing list
> lldb-dev@lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev

_______________________________________________
lldb-dev mailing list
lldb-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev

Reply via email to