<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>To be clear, changing cm3cg output dwarf is, well, the support is already there, cm3cg -gdwarf or whatever.<br><br><br><br>That isn't the right thing to do though. The right thing is just cm3cg -g or -g2 or whatnot, and let the target-specific default be used. For example, on Darwin it is probably "xcoff", on Cygwin it is probably unfortunately stabs.<br><br><br>The key is that we don't describe types in the backend.<br>Our structs are just records with size and no fields, and member/field accesses are done by adding an offset and casting. I started fixing this. It is farther along in the C backend though.<br><br><br>The solution isn't to write any code that knows about any debug format.<br><br><br> - Jay<br><br><br><div><div id="SkyDrivePlaceholder"></div><hr id="stopSpelling">From: dragisha@m3w.org<br>Date: Sat, 30 Mar 2013 23:30:53 +0100<br>To: rodney_bates@lcwb.coop<br>CC: m3devel@elegosoft.com<br>Subject: Re: [M3devel] LLVM backend?<br><br>I've also skimmed through DWARF last year or something like that. _It is_ more complete than stabs and while (esp m3gdb) stabs are mostly hiding and guarding data from compiler through optimizer and linker to debugger, DWARF is made to enable modification of debug info as code is modified (esp while being optimized). There is no order of magnitude big enough to express its advantage over hacked-in-stabs.<div><div><br><div>
<span class="ecxApple-style-span" style="border-collapse:separate;color:rgb(0, 0, 0);font-family:Candara;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;orphans:2;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;font-size:medium;"><span class="ecxApple-style-span" style="border-collapse:separate;color:rgb(0, 0, 0);font-family:Helvetica;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;orphans:2;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;font-size:medium;"><div style="word-wrap:break-word;"><span class="ecxApple-style-span" style="border-collapse:separate;color:rgb(0, 0, 0);font-family:Helvetica;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;orphans:2;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;font-size:medium;"><div style="word-wrap:break-word;"><div>--</div></div></span></div></span><span class="ecxApple-style-span" style="font-family:Helvetica;">Dragiša Durić</span><span class="ecxApple-style-span" style="border-collapse:separate;color:rgb(0, 0, 0);font-family:Helvetica;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;orphans:2;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;font-size:medium;"><div style="word-wrap:break-word;"><span class="ecxApple-style-span" style="border-collapse:separate;color:rgb(0, 0, 0);font-family:Helvetica;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;orphans:2;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;font-size:medium;"><div style="word-wrap:break-word;"><div><a href="mailto:dragisha@m3w.org">dragisha@m3w.org</a></div><div><br></div></div></span></div></span></span><br class="ecxApple-interchange-newline">
</div>
<br><div><div>On Mar 28, 2013, at 4:23 PM, Rodney M. Bates wrote:</div><br class="ecxApple-interchange-newline"><blockquote><span class="ecxApple-style-span" style="border-collapse:separate;font-family:Candara;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;orphans:2;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;font-size:medium;">LLVM has a lot of already provided support for dwarf debug info, keeping it together with code,<br>and helping to transform it in parallel with code, when optimizations, etc., are done.<br>Meanwhile, dwarf itself is vastly more complete and appears to me, from superficial study,<br>to be capable of representing all, or certainly most, of what is needed for good Modula-3 debugging.<br>For these two reasons, I think LLVM plus dwarf present by far the best method to support<br>a nice language-specific debugging experience, while leaving massive kludges behind.</span></blockquote></div><br></div></div></div>                                     </div></body>
</html>