<div dir="ltr">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.<div><br></div><div>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:</div><div><div> bool IsWin64Prologue = MF.getTarget().getMCAsmInfo()->usesWindowsCFI();</div><div> ...</div><div> bool NeedsDwarfCFI =<br></div><div> !IsWin64Prologue && (MMI.hasDebugInfo() || Fn.needsUnwindTableEntry());</div></div><div><br></div><div>NeedsDwarfCFI controls the emission of the DWARF .cfi_* directives, which normally produce the .eh_frame or .debug_frame sections.</div><div><br></div><div>Shoaib, I think you have users of DWARF on Windows? How do they deal with this problem?</div></div><br><br><div class="gmail_quote"><div dir="ltr">On Fri, Mar 23, 2018 at 12:06 AM Jayvee Neumann via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">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<br></div><div class="gmail_extra"><br><div class="gmail_quote">2018-03-23 0:22 GMT+01:00 Reid Kleckner <span dir="ltr"><<a href="mailto:rnk@google.com" target="_blank">rnk@google.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">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.</div><br><br><div class="gmail_quote"><div><div class="m_1243223334141689129h5"><div dir="ltr">On Thu, Mar 22, 2018 at 4:05 PM Jayvee Neumann via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>> wrote:<br></div></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="m_1243223334141689129h5"><div dir="ltr">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<br></div></div></div>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
</blockquote></div>
</blockquote></div><br></div>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
</blockquote></div>