<div dir="ltr">Thinking about it some more, I think I'll come back to this later. I still want to do it, but I want to have a look at other things first.<div><br></div><div>If / when I do get around to it, I think the approach that makes the most sense is:</div>
<div><br></div><div>1) Make a new project called lldwarf, or something similar, that contains all of LLDB's dwarf parsing code.</div><div>2) lldwarf depends on LLVM, no other dependencies.</div><div>3) symbolizer depend on lldwarf</div>
<div>4) lldb depends on lldwarf</div><div>5) All of the clang specific stuff (seems like this exists just for processing AST's) in lldb's dwarf parsing code stays in LLDB's dwarf plugin.</div></div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Fri, Jun 20, 2014 at 5:36 PM, <span dir="ltr"><<a href="mailto:jingham@apple.com" target="_blank">jingham@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Note that lldb's needs for the DWARF parser are pretty specialized. It parses incrementally and puts a great deal of effort into not touching any more of the DWARF than it absolutely needs to to respond to the queries made to it. It is way overkill for a simple dwarf dumper. I'm a little leery of putting it into the llvm sources since somebody there who didn't understand all it was trying to do could make some seemingly innocent simplification, and that would not cause any correctness issues which the lldb testsuite would catch, but "only" performance problems that were probably only noticeable for sizable apps so the testsuite might not catch that either...<br>
<br>
Did you have some need for the lldb DWARF parser's capabilities or was this just a software-hygiene issue?<br>
<br>
Jim<br>
<div><div class="h5"><br>
> On Jun 20, 2014, at 5:23 PM, Ed Maste <<a href="mailto:emaste@freebsd.org">emaste@freebsd.org</a>> wrote:<br>
><br>
> On 20 June 2014 19:42, Zachary Turner <<a href="mailto:zturner@google.com">zturner@google.com</a>> wrote:<br>
>> It seems to me like the code in source\Plugins\SymbolFile\DWARF was forked<br>
>> from llvm\lib\DebugInfo. Can anyone offer some history here?<br>
>><br>
>> Is there any technical reason, aside from simply the work hasn't been done<br>
>> yet, that we can't merge this back up into LLVM's DWARF parsing code and<br>
>> then just re-use that?<br>
><br>
> It's the other way around -- the code started out in LLDB, and was<br>
> then reused in LLVM, but nobody refactored LLDB to use the new one.<br>
> They have now diverged and each has some functionality that's not<br>
> present in the other one.<br>
><br>
> There's no technical reason we couldn't converge on one implementation<br>
> -- it's just a sizable effort that hasn't made it to the top of<br>
> anyone's priority list.<br>
</div></div>> _______________________________________________<br>
> lldb-dev mailing list<br>
> <a href="mailto:lldb-dev@cs.uiuc.edu">lldb-dev@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a><br>
<br>
</blockquote></div><br></div>