<div dir="ltr">There is another option which I was just made aware of. LLDB already has a setting called `target.debug-file-search-paths`. This is basically a symbol path. If you call Symbols::LocateExecutableSymbolFile, it will already add use this setting, and moreover it will implicitly add current working directory to this path.<div><br></div><div>So, if you want this behavior in a supported way that isn't temporary, we should move the code for findMatchingPDBFile() out of SymbolFilePDB and into this function. Then everyone is happy I think.</div><div><br></div><div>What do you think?</div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Dec 11, 2018 at 4:42 PM Zachary Turner <<a href="mailto:zturner@google.com">zturner@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Tue, Dec 11, 2018 at 4:22 PM Leonard Mosescu <<a href="mailto:mosescu@google.com" target="_blank">mosescu@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I guess I don't see why we need a temporary solution at all. If we can have logic that can be rolled into the SymbolVendor when we get it, and makes sense there, and is also simple, why not go with it? Failing that, doesn't the `target symbols add` solution also work fine?<br></blockquote><div><br></div></div><div dir="ltr"><div>I just checked again, and "target symbols add" depends on having a real SymbolVendor implementation. So unfortunately we still need a temporary solution.</div></div></blockquote><div><br></div></div></div><div dir="ltr"><div class="gmail_quote"><div>I tried to verify this behavior, but it seems like it should already work out of the box? So we're on the same page, we already do have a real SymbolVendor implementation, it just happens to be the *default* SymbolVendor implementation. It's not the case that one doesn't exist at all.</div><div><br></div><div>So anyway, when I run "target symbols add foo.exe path/to/foo.pdb" internally what this does is set a member variable called m_symfile_spec on the Module object. Then, it calls our normal CalculateAbilities() function which calls loadMatchingPDBFile.</div><div><br></div><div>I think all that needs to happen is that we need to check this field. If it's empty, try to load a matching PDB file. If it's set to something, then load that file instead.</div></div></div>
</blockquote></div>