<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jan 29, 2015, at 10:24 AM, Eric Christopher <<a href="mailto:echristo@gmail.com" class="">echristo@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><br class=""><br class=""><div class="gmail_quote">On Thu Jan 29 2015 at 10:22:17 AM Zachary Turner <<a href="mailto:zturner@google.com" class="">zturner@google.com</a>> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="">I've been working on adding pdb reading support to llvm.  This started as a tool for dumping info from a pdb (similar to llvm-dwarfdump), which has been checked in and currently has limited support for dumping pdb.<div class=""><br class=""></div><div class="">There's still more to be done on the pdb dumping tool, but at this point -- to reduce duplicated effort -- I think it makes the most sense to start moving some of this logic into a library in llvm, and then change llvm-pdbdump to use the library.  Later, once the library is more comprehensive, I plan to then use it in LLDB for reading PDBs while debugging on Windows.</div><div class=""><br class=""></div><div class="">I think the best way to do this is to move all of the code in lib/DebugInfo to lib/DebugInfo/dwarf, and then make another folder called lib/DebugInfo/pdb.   These would then be compiled into two separate libraries.</div><div class=""><br class=""></div><div class="">Another approach is to just put the PDB code in the same folder as the dwarf code, but I don't like this approach for a number of reasons:</div><div class=""><br class=""></div><div class="">1) Not every consumer of DebugInfo wants both types of DebugInfo.</div><div class="">2) The pdb reading code relies <b class="">very heavily</b> on Windows APIs, and will not compile on other platforms.  This is solvable with some CMake machinery, but it's ugly and unwarranted in my opinion.</div><div class=""><br class=""></div><div class="">So as a first step in this direction I'd like to propose moving the code in lib/DebugInfo to lib/DebugInfo/dwarf, and then updating the rest of llvm accordingly.</div><div class=""><br class=""></div><div class="">Thoughts?  Comments?  Suggestions?</div></div></blockquote><div class=""><br class=""></div><div class="">Sounds good. Naming bikeshed:</div><div class=""><br class=""></div></div></div></div></blockquote><div><div class="">Sounds generally good. Not knowing much about PDB; are there any plans to have some kind of unified interface between dwarf and pdb (don’t know if that makes sense), or will they be kept separate?</div><div class=""><br class=""></div></div><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="gmail_quote"><div class="">DWARF/Dwarf and PDB as directory names.</div></div></div></div></blockquote><div><br class=""></div><div>The official spelling is DWARF but it’s visually heavy and doesn’t play well with camelcase identifiers. DWARF when it’s used alone and Dwarf when it’s part of a longer word?</div><div><br class=""></div><div>-- adrian</div><div><br class=""></div><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="gmail_quote"><div class=""><br class=""></div><div class="">Might want to ask Frederic about any pending patches he wants to get in before you move things around under him. git _should_ deal with it, but...</div><div class=""><br class=""></div><div class="">-eric</div><div class=""> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class=""><div class="">Zach</div></div>
______________________________<u class=""></u>_________________<br class="">
LLVM Developers mailing list<br class="">
<a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank" class="">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu/" target="_blank" class="">http://llvm.cs.uiuc.edu</a><br class="">
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank" class="">http://lists.cs.uiuc.edu/<u class=""></u>mailman/listinfo/llvmdev</a><br class="">
</blockquote></div></div>
</div></blockquote></div><br class=""></body></html>