[Lldb-commits] [PATCH] D17363: Add SymbolFilePDB with basic support for line tables.

Zachary Turner via lldb-commits lldb-commits at lists.llvm.org
Fri Feb 26 15:33:12 PST 2016

Ok, so back to check_inlines.  I realized after I hit send that the
explanation I had written out is exactly what I thought I had to do for
check_inlines == true.

I guess a concrete example would make it clearer.  If I have this code:

// foo.cpp
#include "foo.h"

int main(int argc, char **argv) { return 0; }

And I run this C++ code:

// After this, sc_list should have 1 entry.
ResolveSymbolContext("foo.h", 0, true, eSymbolContextCompUnit, sc_list);

// After this, sc_list should have how many entries?  1 or 0?
ResolveSymbolContext("foo.h", 0, false, eSymbolContextCompUnit, sc_list);

how many entries are in sc_list after the second call?  If it's still 1,
then what is the difference with the first case?

Is the only difference what I put into the line tables?  In the 'true'
case, I fill out the line tables with all the contributions from foo.h, but
in the 'false' case I don't?  But both still return the same number of
entries in sc_list?

(Sorry this is so confusing, I'm planning to document this process as I go
so that the next person that comes along will be able to have all this
information up front)

On Fri, Feb 26, 2016 at 3:26 PM Greg Clayton <clayborg at gmail.com> wrote:

> > On Feb 26, 2016, at 3:22 PM, Zachary Turner <zturner at google.com> wrote:
> >
> >
> >
> > On Fri, Feb 26, 2016 at 3:16 PM Greg Clayton <clayborg at gmail.com> wrote:
> >
> > > On Feb 26, 2016, at 2:49 PM, Zachary Turner <zturner at google.com>
> wrote:
> >
> > > I'm coming back around to this now.  What happens if check_inlines is
> False, but the FileSpec is a header file like <vector>.  You said "If
> check_inlines is false, make sure file_spec matches".  But if file_spec is
> a header file, it's never going to match anything.  Should I simply expect
> that the API is not called in this way?
> >
> > It can be called, but you should only match on compile units whose files
> match "vector" as the basename.
> > Ahh, so I don't return each compile unit that matches the file_spec, but
> rather each CompileUnit where the compile unit OR one of the support files
> matches the file_spec.
> Yes. Think of what the user is going to want if they type:
> (lldb) b vector:123
> This should find all files that match vector and set a breakpoint on line
> 123 of _all_ of them.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20160226/8242727c/attachment-0001.html>

More information about the lldb-commits mailing list