Windows x64 unwind info


I’m wondering about the status of Windows x64 unwind info in LLVM. We’re trying to print a simple stack trace on Windows exceptions, including function names of JITted code (which we can roughly derive using addresses from a JITEventListener). While this works fine in 32-bit mode, we’re unable to properly walk the stack in 64-bit since the unwind info doesn’t seem to be present for JITted functions.

It looks like there is code to generate the unwind info in lib/MC/MCWin64EH.cpp but it’s not clear that this is still in use. This post from last fall seems to indicate that EH code for Win64 may have been removed from the old JIT engine (which we are currently using):

Should Windows x64 unwind info currently exist for code emitted using either the old JIT or the new MCJIT?


As far as I know LLVM still does not generate proper unwind info for Windows x64. I did some work on this and posted some patches a couple months ago, please see

It needs more testing.