<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Sorry, I missed this.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">We don't have a solution to this, to the best of my knowledge. We just accept the loss of fidelity.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-left:.5in"><b><span style="font-size:12.0pt;color:black">From:
</span></b><span style="font-size:12.0pt;color:black">Reid Kleckner <rnk@google.com><br>
<b>Date: </b>Friday, March 23, 2018 at 11:10 AM<br>
<b>To: </b>"jayvee.neumann@gmail.com" <jayvee.neumann@gmail.com>, Shoaib Meenai <smeenai@fb.com><br>
<b>Cc: </b>cfe-dev <cfe-dev@lists.llvm.org><br>
<b>Subject: </b>Re: [cfe-dev] debug_frame section not generated for Windows 64bit<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><a name="_MailOriginalBody">Got it. I think the CFA is always the address of the return address, so such a DWARF consumer could be retrofitted to parse .xdata, find the caller's return address, and evaluate expressions
 using the CFA from there. <o:p></o:p></a></p>
<div>
<p class="MsoNormal" style="margin-left:.5in"><span style="mso-bookmark:_MailOriginalBody"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><span style="mso-bookmark:_MailOriginalBody">I don't think it's possible to get LLVM to emit DWARF CFI and Win CFI at the same time. The booleans in the prologue emission suggest that they are mutually exlusive:<o:p></o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><span style="mso-bookmark:_MailOriginalBody">  bool IsWin64Prologue = MF.getTarget().getMCAsmInfo()->usesWindowsCFI();<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><span style="mso-bookmark:_MailOriginalBody">  ...<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><span style="mso-bookmark:_MailOriginalBody">  bool NeedsDwarfCFI =<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><span style="mso-bookmark:_MailOriginalBody">      !IsWin64Prologue && (MMI.hasDebugInfo() || Fn.needsUnwindTableEntry());<o:p></o:p></span></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><span style="mso-bookmark:_MailOriginalBody"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><span style="mso-bookmark:_MailOriginalBody">NeedsDwarfCFI controls the emission of the DWARF .cfi_* directives, which normally produce the .eh_frame or .debug_frame sections.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><span style="mso-bookmark:_MailOriginalBody"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><span style="mso-bookmark:_MailOriginalBody">Shoaib, I think you have users of DWARF on Windows? How do they deal with this problem?<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:.5in">
<span style="mso-bookmark:_MailOriginalBody"><o:p> </o:p></span></p>
<div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><span style="mso-bookmark:_MailOriginalBody">On Fri, Mar 23, 2018 at 12:06 AM Jayvee Neumann via cfe-dev <</span><a href="mailto:cfe-dev@lists.llvm.org"><span style="mso-bookmark:_MailOriginalBody">cfe-dev@lists.llvm.org</span><span style="mso-bookmark:_MailOriginalBody"></span></a><span style="mso-bookmark:_MailOriginalBody">>
 wrote:<o:p></o:p></span></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<p class="MsoNormal" style="margin-left:.5in"><span style="mso-bookmark:_MailOriginalBody">Hi Reid,<br>
<br>
your suggestion is not a solution to the problem I have. I still want to use SEH on 64bit Windows because it is, as you also pointed out, required by the ABI. I need a .debug_frame or .eh_frame section in addition to the SEH .pdata section. I am aware that
 the exception handling data would be redundant. Information about e.g. the CFA, which is required by some DWARF-expressions/locations, would not be redundant though.<br>
<br>
Is there a way to request both, a .pdata section for SEH style exceptions and a .debug_frame sections, in the same or a similar way to MinGW-w64?<br>
<br>
Best Regards<br>
Jayvee<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><span style="mso-bookmark:_MailOriginalBody"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:.5in"><span style="mso-bookmark:_MailOriginalBody">2018-03-23 0:22 GMT+01:00 Reid Kleckner <</span><a href="mailto:rnk@google.com" target="_blank"><span style="mso-bookmark:_MailOriginalBody">rnk@google.com</span><span style="mso-bookmark:_MailOriginalBody"></span></a><span style="mso-bookmark:_MailOriginalBody">>:<o:p></o:p></span></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<p class="MsoNormal" style="margin-left:.5in"><span style="mso-bookmark:_MailOriginalBody">Clang defaults to emitting SEH unwind information on Win64, since it is required by the ABI. DWARF EH tables would be redundant, but you can request them with -fdwarf-exceptions.<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:.5in">
<span style="mso-bookmark:_MailOriginalBody"><o:p> </o:p></span></p>
<div>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><span style="mso-bookmark:_MailOriginalBody">On Thu, Mar 22, 2018 at 4:05 PM Jayvee Neumann via cfe-dev <</span><a href="mailto:cfe-dev@lists.llvm.org" target="_blank"><span style="mso-bookmark:_MailOriginalBody">cfe-dev@lists.llvm.org</span><span style="mso-bookmark:_MailOriginalBody"></span></a><span style="mso-bookmark:_MailOriginalBody">>
 wrote:<o:p></o:p></span></p>
</div>
</div>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><span style="mso-bookmark:_MailOriginalBody">Hi togehter,<br>
<br>
I am currently switching from MinGW-w64 to clang. I am running into a problem with the debug information generated by clang, though. When building with mingw, there will always be an .eh_frame or a .debug_frame section. This is also true for 64bit windows.
 When I build the same files with clang for the target triple "x86_64-pc-windows-gnu" neither a .debug_frame nor an .eh_frame section is generated.
<br>
<br>
I there a way for me to explicitly specify via command line that such a section shall be generated?<br>
If not, is there a way to change the llvm/clang source code in a way such that these sections will be generated for the specified target?<br>
<br>
Best Regards,<br>
Jayvee<o:p></o:p></span></p>
</div>
</div>
</div>
<p class="MsoNormal" style="margin-left:.5in"><span style="mso-bookmark:_MailOriginalBody">_______________________________________________<br>
cfe-dev mailing list<br>
</span><a href="mailto:cfe-dev@lists.llvm.org" target="_blank"><span style="mso-bookmark:_MailOriginalBody">cfe-dev@lists.llvm.org</span><span style="mso-bookmark:_MailOriginalBody"></span></a><span style="mso-bookmark:_MailOriginalBody"><br>
</span><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_cfe-2Ddev&d=DwMFaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=uoGEG5GL9LtEutiS6fDIgNRuS1OczWMVUMtgBL5cz6o&s=2dZrhCEkWh7IJ0k1oRknoTAqBFRRrMOT9rR8ZRuS2yc&e=" target="_blank"><span style="mso-bookmark:_MailOriginalBody">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</span><span style="mso-bookmark:_MailOriginalBody"></span></a><span style="mso-bookmark:_MailOriginalBody"><o:p></o:p></span></p>
</blockquote>
</div>
</blockquote>
</div>
<p class="MsoNormal" style="margin-left:.5in"><span style="mso-bookmark:_MailOriginalBody"><o:p> </o:p></span></p>
</div>
<p class="MsoNormal" style="margin-left:.5in"><span style="mso-bookmark:_MailOriginalBody">_______________________________________________<br>
cfe-dev mailing list<br>
</span><a href="mailto:cfe-dev@lists.llvm.org" target="_blank"><span style="mso-bookmark:_MailOriginalBody">cfe-dev@lists.llvm.org</span><span style="mso-bookmark:_MailOriginalBody"></span></a><span style="mso-bookmark:_MailOriginalBody"><br>
</span><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_cfe-2Ddev&d=DwMFaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=uoGEG5GL9LtEutiS6fDIgNRuS1OczWMVUMtgBL5cz6o&s=2dZrhCEkWh7IJ0k1oRknoTAqBFRRrMOT9rR8ZRuS2yc&e=" target="_blank"><span style="mso-bookmark:_MailOriginalBody">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</span><span style="mso-bookmark:_MailOriginalBody"></span></a><span style="mso-bookmark:_MailOriginalBody"><o:p></o:p></span></p>
</blockquote>
</div>
</div>
</body>
</html>