Are glob characters legal file characters on any systems? If so we can't do the auto detect where we override the meaning of -f. If not, then we can. We could add a --glob option that goes along with the -f option if glob characters are valid file system characters.
There are a few breakpoint options that aren't available via the lldb::SB API layer. Not skipping the prologue for breakpoints by name and regex is one of them. It would be nice to follow other examples where we make a options class that has nice defaults and get sent to each breakpoint kind. The current API is: lldb::SBBreakpoint BreakpointCreateByName(const char *symbol_name, const char *module_name = nullptr); // This version uses name_type_mask = eFunctionNameTypeAuto lldb::SBBreakpoint BreakpointCreateByName(const char *symbol_name, const SBFileSpecList &module_list, const SBFileSpecList &comp_unit_list); With a breakpoint options class we would add: lldb::SBBreakpoint BreakpointCreateByName(const char *symbol_name, lldb::SBBreakpointOptions &options); Then we can make SBBreakpointOptions be able to set any kinds of filters we want. The missing things that come to mind are: - don't skip prologue - don't set inlined breakpoints (concrete only) (this is missing in the command line interface as well) - limiting to certain files or shared libraries (only available on some SBTarget::BreakpointCreateXXX() functions) - thread specific settings - hit count - skip count - setting condition on breakpoint right away instead of making another API call > On Oct 25, 2017, at 6:15 AM, Don Hinton via lldb-dev > <lldb-dev@lists.llvm.org> wrote: > > I'd also like to include the path in the pattern, e.g., -f "*/clang/*", which > would cut the number of files examined by about half for my use case. > > > > On Tue, Oct 24, 2017 at 7:24 PM, Zachary Turner <ztur...@google.com > <mailto:ztur...@google.com>> wrote: > Pass a pattern to the -f option. > > On Tue, Oct 24, 2017 at 7:18 PM Don Hinton <hinto...@gmail.com > <mailto:hinto...@gmail.com>> wrote: > Do you mean just pass a pattern to the -f option or FileSpec? > > On Tue, Oct 24, 2017 at 6:50 PM, Zachary Turner <ztur...@google.com > <mailto: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 <mailto: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 > > <mailto: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 > > <mailto: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 <mailto: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 <mailto:lldb-dev@lists.llvm.org> > > > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev > > > <http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev> > > > > > > _______________________________________________ > lldb-dev mailing list > lldb-dev@lists.llvm.org <mailto:lldb-dev@lists.llvm.org> > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev > <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