[Lldb-commits] [PATCH] D74136: [LLDB] WIP: Optionally follow DW_AT_decl_file when setting breakpoint

Pavel Labath via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Wed Feb 12 03:00:58 PST 2020


labath added a comment.

In D74136#1870029 <https://reviews.llvm.org/D74136#1870029>, @jingham wrote:

> In D74136#1869622 <https://reviews.llvm.org/D74136#1869622>, @kwk wrote:
>
> > @labath @jingham to summarize from what I read here and what I chatted about with @labath , the following  is a possible way to go for now, right?
> >
> > 1. We're not going to introduce my flag.
> > 2. You're both not perfectly happy with the way things are documented at the moment and dislike some of the implementation as in in LLDB but chaning it should not be part of this patch.
> > 3. @jingham wouldn't want to introduce `--compile-unit` as a flag that @labath proposed.
> > 4. You want `breakpoint set --file` to search everything, that is to say compilation units and files referenced in `DW_AT_decl_file`.
> >
> >   If you can confirm that this is correct, then I can refactor this patch to remove the switch and change the default behavior for `breakpoint set --file`. Especially point 4. is important I guess.
>
>
> There's a point (5) which is that the search in 4 should be conditioned on the setting of the "target.inline-breakpoint-strategy".  That way if people have big projects but don't ever #include source files, and don't build with LTO, they can turn off these extra searches, which might end up being costly and to no purpose for them.


I think we're on the same page, but I'll just try to rephrase this in my own words.

Basically, I'm hoping that we could get the `--file+--function` combo to behave the same way `--file+--line`. I.e., that the --file argument should specify the file that the function is defined in (i.e. the DW_AT_decl_file attribute of the function), and not the compile unit (DW_AT_name of the compile unit containing the function). The way the `inline-breakpoint-strategy` setting comes into play is that if the setting value is "headers" and the user specifies a `.cpp` file, then we will assume that the .cpp file also matches the name of one of the compile units, and we will not attempt to search compile units with different names (which is the same thing we do for line breakpoints, I believe).


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74136/new/

https://reviews.llvm.org/D74136





More information about the lldb-commits mailing list