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