Andrew MacPherson
2013-Dec-20 10:18 UTC
[LLVMdev] [PATCH] Don't optimize out GDB JIT registrar
Hi, We switched from compiling LLVM with gcc to clang (3.3) and it appears that clang (correctly I think) optimizes away the GDBRegistrar's __jit_debug_register_code() function that's used to trigger reading debug info from JIT-ted code, breaking GDB support. This patch forces it to leave the call using the method described here in the 'noinline' section: http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html Cheers, Andrew -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131220/7c80d151/attachment.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: GDBRegistrar.patch Type: text/x-diff Size: 553 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131220/7c80d151/attachment.patch>
Joerg Sonnenberger
2013-Dec-20 10:52 UTC
[LLVMdev] [PATCH] Don't optimize out GDB JIT registrar
On Fri, Dec 20, 2013 at 11:18:46AM +0100, Andrew MacPherson wrote:> This patch forces it to leave the call using the method described here in > the 'noinline' section:Use asm volatile("":::"memory") to make sure that it doesn't leave trackes. The noinline can likely go in that case... Joerg
Andrew MacPherson
2013-Dec-20 11:50 UTC
[LLVMdev] [PATCH] Don't optimize out GDB JIT registrar
Thanks Joerg. I've made the change you suggested and verified that it still works. I think the noinline is still required though as this function can be called from a couple of places and gdb will want to set its breakpoint on the single function address. Let me know if you think otherwise though. Cheers, Andrew On Fri, Dec 20, 2013 at 11:52 AM, Joerg Sonnenberger < joerg at britannica.bec.de> wrote:> On Fri, Dec 20, 2013 at 11:18:46AM +0100, Andrew MacPherson wrote: > > This patch forces it to leave the call using the method described here in > > the 'noinline' section: > > Use asm volatile("":::"memory") to make sure that it doesn't leave > trackes. The noinline can likely go in that case... > > Joerg > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131220/b6c61aea/attachment.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: GDBRegistrar.patch Type: text/x-diff Size: 573 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131220/b6c61aea/attachment.patch>
Reasonably Related Threads
- [LLVMdev] [PATCH] Don't optimize out GDB JIT registrar
- [LLVMdev] [PATCH] Don't optimize out GDB JIT registrar
- [LLVMdev] [PATCH] Don't optimize out GDB JIT registrar
- [LLVMdev] [PATCH] Don't optimize out GDB JIT registrar
- [LLVMdev] MCJIT debugger registration interface.