Hi ,
I am new to llvm.I met a problem with the jit debug. According to
DebuggingJITedCode.html ,I do the same step of this document. But my
gdb can't get the symbol. When i did the same thing on linux ,the
result is correct. But on windows, i failed. Why? I build the llvm
with vc2008, os winxp.
Hi, Tang
result is correct. But on windows, i failed. Why? I build the llvm
with vc2008, os winxp.
At the end of Debugging JIT-ed Code — LLVM 18.0.0git documentation, it said,
"At the time of this writing, LLVM only supports architectures that use
ELF object files and it only generates symbols and DWARF CFA
information."
Maybe this is the reason why you read nothing on Windows.
Regards,
chenwj
hi êífÈΣ¬
but in the source code i find this comment.
// ELF is a reasonably sane default and the only other X86 targets we
// support are Darwin and Windows. Just use "not those".
does this means that we can debug jit on windows?
i am confused.help
Hi, Tang
but in the source code i find this comment.
// ELF is a reasonably sane default and the only other X86 targets we
// support are Darwin and Windows. Just use "not those".
I guess you found above comment in lib/Target/X86/X86Subtarget.h.
But I think X86Subtarget.h is only related to the codegen, but NOT
the debugging information. The comment means you can generate code
for Linux, Darwin and Windows on X86.
Regards,
chenwj
so as you said , there is no hop for debug jit on windows?
so as you said , there is no hop for debug jit on windows?
I have no idea. Maybe someone familiar with LLVM on Windows can
answer your question.
But I have a question for you, you said you built LLVM with Visual
Studio and debugged your program with GDB. I doubt the Visual Studio
produces the debugging information recognized by GDB. Why not build
LLVM with MinGW or someting like that?
Regards,
chenwj
the reason I built llvm with vc is that I am familiar with vc. At
first i also thing that build llvm with MingW will solve this problem.
but after I read the source code
void JITDebugRegisterer::RegisterFunction(const Function *F, DebugInfo &I) {
// TODO: Support non-ELF platforms.
if (!TM.getELFWriterInfo())
return;
......
}
I thing MinGW is helpless with debug jit on win. getELFWriterInfo
returns true only on linux ,and the RegisterFunction gen symbol
infomation only on linux.
Yes, to be clear, the support in LLVM for debugging JITed code only
works on Linux, so far as I know. I made an attempt to make it work
on Darwin, but it didn't get anywhere.
You should still be able to debug your application on Windows if frame
pointers are preserved, you just won't be able to examine the frame
itself.
Reid