[LLVMdev] Stack traces from JIT code
Reid Kleckner
rnk at google.com
Wed Nov 13 08:51:28 PST 2013
Writing your own JITEventListener is probably the best way to capture
traces from production. Using the existing gdb/JIT interface support is
probably far too heavyweight for production. If you roll your own, you can
record the PC ranges efficiently and that should be good enough to capture
traces from production.
On Tue, Nov 12, 2013 at 2:56 PM, Priyendra Deshwal
<deshwal at thoughtspot.com>wrote:
> [Resending this email after subscribing to the group. Got an error message
> the previous time around]
>
> Hey guys,
>
> In our project we have the following workflow:
>
> - Given a user request, we construct a C++ program to service the request
> - We create a compiler invocation to compile that program into an IR module
> - We use JIT (and optionally MCJIT) to convert the IR into executable code
> and run it
>
> Occasionally, we have a crash in the JIT code and we are looking to figure
> out best practices around debuggability. With the MCJIT option, we can
> debug in gdb so that is already a big step forward.
>
> However, that does not work for a production crash. We want to capture the
> stack trace from the crash and write it to stderr. Our binary has a signal
> handler that does stack unwinding and symbolization upon crash. Based on my
> reading so far, we need to implement a JITEventListener which would keep
> track of the dynamically generated symbol addresses and use the resulting
> maps for symbolization.
>
> Will that work? Is there a simpler way?
>
> Thanks,
> -- Priyendra
>
> _______________________________________________
> 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/20131113/022e9b64/attachment.html>
More information about the llvm-dev
mailing list