Praveen Velliengiri via llvm-dev
2019-Dec-19 20:01 UTC
[llvm-dev] Moving to ORCv2 - Compiling debuggable code?
Dear Geoff, As for as ORCv2 is concerned, there is no event listener facility available as of now. Thanks On Fri, 20 Dec 2019 at 01:21, David Blaikie via llvm-dev < llvm-dev at lists.llvm.org> wrote:> +Lang Hames <lhames at gmail.com> the author/owner of the ORC JIT - though > he's out of teh office at the moment I think, so might not get a reply > until the new year I'd expect. Perhaps other folks familiar with it might > chime in, though. > > On Thu, Dec 19, 2019 at 7:31 AM Geoff Levner via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > >> I too am in the process of porting our ORC code to ORC v2 and LLJIT. The >> new API allows me to remove much of our own code, which can only be a good >> thing. I sometimes get crashes, however, when executing my JIT compiled >> function, so I thought I would use gdb to try to figure out what is going >> wrong. And I am dismayed to see that there seems to be no way to provide an >> event listener to register compiled functions with gdb. LLJIT creates an >> object linking layer with no listeners, and no way to add listeners >> afterwards that I can see. >> >> Am I missing something? Is there another way to debug JIT compiled code? >> >> Geoff >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191220/ebc822ab/attachment.html>
River Riddle via llvm-dev
2019-Dec-19 23:19 UTC
[llvm-dev] Moving to ORCv2 - Compiling debuggable code?
If you are creating your own object linking layer via LLJITBuilder, you could add the notification yourself. For RTDyldObjectLinkingLayer, you can use `setNotifyLoaded`. For ObjectLinkingLayer, I think you would need to use a `ObjectLinkingLayer::Plugin`. I was able to hook the existing GDB registration listener this way. -- River On Thu, Dec 19, 2019 at 12:02 PM Praveen Velliengiri via llvm-dev < llvm-dev at lists.llvm.org> wrote:> Dear Geoff, > As for as ORCv2 is concerned, there is no event listener facility > available as of now. > > Thanks > > On Fri, 20 Dec 2019 at 01:21, David Blaikie via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > >> +Lang Hames <lhames at gmail.com> the author/owner of the ORC JIT - though >> he's out of teh office at the moment I think, so might not get a reply >> until the new year I'd expect. Perhaps other folks familiar with it might >> chime in, though. >> >> On Thu, Dec 19, 2019 at 7:31 AM Geoff Levner via llvm-dev < >> llvm-dev at lists.llvm.org> wrote: >> >>> I too am in the process of porting our ORC code to ORC v2 and LLJIT. The >>> new API allows me to remove much of our own code, which can only be a good >>> thing. I sometimes get crashes, however, when executing my JIT compiled >>> function, so I thought I would use gdb to try to figure out what is going >>> wrong. And I am dismayed to see that there seems to be no way to provide an >>> event listener to register compiled functions with gdb. LLJIT creates an >>> object linking layer with no listeners, and no way to add listeners >>> afterwards that I can see. >>> >>> Am I missing something? Is there another way to debug JIT compiled code? >>> >>> Geoff >>> _______________________________________________ >>> LLVM Developers mailing list >>> llvm-dev at lists.llvm.org >>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >>> >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191219/7aaa0959/attachment.html>
Geoff Levner via llvm-dev
2019-Dec-20 08:47 UTC
[llvm-dev] Moving to ORCv2 - Compiling debuggable code?
Hmm, the things of which you speak (LLJITBuilder, setNotifyLoaded(), ObjectLinkingLayer) do not seem to exist in LLVM 8. We may have to jump directly from LLVM 7 to LLVM 9 then.... Thanks, Geoff On Fri, Dec 20, 2019 at 12:19 AM River Riddle via llvm-dev <llvm-dev at lists.llvm.org> wrote:> > If you are creating your own object linking layer via LLJITBuilder, you could add the notification yourself. For RTDyldObjectLinkingLayer, you can use `setNotifyLoaded`. For ObjectLinkingLayer, I think you would need to use a `ObjectLinkingLayer::Plugin`. I was able to hook the existing GDB registration listener this way. > > -- River > > On Thu, Dec 19, 2019 at 12:02 PM Praveen Velliengiri via llvm-dev <llvm-dev at lists.llvm.org> wrote: >> >> Dear Geoff, >> As for as ORCv2 is concerned, there is no event listener facility available as of now. >> >> Thanks >> >> On Fri, 20 Dec 2019 at 01:21, David Blaikie via llvm-dev <llvm-dev at lists.llvm.org> wrote: >>> >>> +Lang Hames the author/owner of the ORC JIT - though he's out of teh office at the moment I think, so might not get a reply until the new year I'd expect. Perhaps other folks familiar with it might chime in, though. >>> >>> On Thu, Dec 19, 2019 at 7:31 AM Geoff Levner via llvm-dev <llvm-dev at lists.llvm.org> wrote: >>>> >>>> I too am in the process of porting our ORC code to ORC v2 and LLJIT. The new API allows me to remove much of our own code, which can only be a good thing. I sometimes get crashes, however, when executing my JIT compiled function, so I thought I would use gdb to try to figure out what is going wrong. And I am dismayed to see that there seems to be no way to provide an event listener to register compiled functions with gdb. LLJIT creates an object linking layer with no listeners, and no way to add listeners afterwards that I can see. >>>> >>>> Am I missing something? Is there another way to debug JIT compiled code? >>>> >>>> Geoff