<div class="gmail_quote">On 12 September 2012 23:09, Nathan Jeffords <span dir="ltr"><<a href="mailto:blunted2night@gmail.com" target="_blank">blunted2night@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br><br><div class="gmail_quote"><div class="im">On Wed, Sep 12, 2012 at 12:19 PM, Manu <span dir="ltr"><<a href="mailto:turkeyman@gmail.com" target="_blank">turkeyman@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="gmail_quote"><div>On 12 September 2012 20:49, Nathan Jeffords <span dir="ltr"><<a href="mailto:blunted2night@gmail.com" target="_blank">blunted2night@gmail.com</a>></span> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<br><div class="gmail_quote"><div><div>On Wed, Sep 12, 2012 at 9:46 AM, Manu <span dir="ltr"><<a href="mailto:turkeyman@gmail.com" target="_blank">turkeyman@gmail.com</a>></span> wrote:<br></div><div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="gmail_quote"><div>/Z7, that's the one. Maybe this approach can be used by LLVM? I presume LLVM is capable of producing CV info already? Maybe this configuration is already possible?</div>
<div>
It'd be interesting to try it out, CV in the COFF objects, and see if the linker makes sense of it at link time...</div><div><div><br></div></div></div></blockquote><div><br></div></div></div><div><div>I was able to get clang to produce COFF files with embedded DWARF debug relatively easily, which produces executables debuggable via the MinGW tool-chain.</div>


</div></div></blockquote><div><br></div><div><div>This sounds effectively identical to what I have now using MinGW GCC to produce COFF binaries with DWARF debug info, and then running cv2pdb after linking to extract a PDB from the binary. It works, but it means I can't link against MSVC libs/objects because of the conflicting debug info formats. :/</div>


<div><br></div></div><div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_quote"><div> To support another debug format would be difficult I think, though I'm no expert on the subject. Currently LLVM internally represents everything more or less directly in DWARF. All of the debug meta-data attached to the IR is a slightly higher representation of DWARF data-structures. While there is a debug info builder class the insulates front ends from the details of DWARF to some extent, it is not complete isolation. I think the only feasible approach is to translate the DWARF info into CV info at a lower level, perhaps after the initial COFF object file containing DWARF has been emitted.</div>


</div></blockquote><div><br></div></div><div>Okay, so CV isn't supported, not sure where I got that idea >_<</div><div>Hmmm, okay, well I think I'm back where I started using the MinGW toolchain in that case...</div>


<div><br></div><div>Oh, it's all so problematic ;)</div><div><div><br></div></div></div></blockquote><div><br></div></div><div>It might be feasible to convert DWARF to CV within the object file prior to linking, then you should be able to link against MSVC libraries.</div>
</div></blockquote><div><br></div><div>Yeah okay. So short of a concerted effort to properly support PDB, this sounds like the most plausible option going forwards.</div><div>I'll dig around tomorrow, I wonder if there are any tools to do this already, or if cv2pdb can be adapted perhaps.</div>
<div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="gmail_quote"><div><div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="gmail_quote"><div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="gmail_quote"><div><div>I'd also argue that the VS debugger is possibly the single biggest productivity enhancement offered by the IDE ;)</div></div><div>And yeah, I'm in the situation where I need to link against MSVC built code, so I need PDB at the end of the day.</div>




<div><br></div><div>Your approach would be really handy in other cases though, DWARF plugin for VisualStudio would be a generally useful tool.</div></div>
</blockquote></div></div><br><div>From what I was able to gather while looking into a debugger plugin, the existing user interface would drive all debuggers, thus the user should have more or less the same debugging experience with any fully implemented plugin.</div>


</blockquote><div><br></div></div><div>This sounds like what WinGDB does. As I understood it, there is a problem with WinGDB, where they said they weren't able to actually implement their debugger plugin without implementing a custom project type, which mutually excludes the Visual Studio build architecture.</div>


</div>
</blockquote></div></div><br><div>This maybe why google seems to have abandoned the idea of building a debugger plugin.</div></blockquote><div><br></div><div>Possibly. You might be interested to take a quick look at WinGDB. It may be interesting how they were able to integrate their debugger, and what they had to do to the project stuff to make it work.</div>
<div>WinGDB for Android shows the situation very well :)</div></div>