<div dir="ltr">Oh, you're right though: The possibility of doing this is all in my head, but not well documented anywhere yet. :/<div><br></div><div>-- Lang.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 11, 2017 at 11:26 AM, Lang Hames <span dir="ltr"><<a href="mailto:lhames@gmail.com" target="_blank">lhames@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">HI Yichao,<div><br></div><div>RTDyldObjectLinkingLayer has a NotifyObjectLoaded hook that you can use to call NotifyObjectEmitted on your GDBRegistrationListener.</div><div><br></div><div>If code is going to be unloaded we would have to add an extra hook to call NotifyFreeingObject -- that seems totally reasonable to add.</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>-- Lang.</div><div><br></div></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 11, 2017 at 10:44 AM, Yichao Yu <span dir="ltr"><<a href="mailto:yyc1992@gmail.com" target="_blank">yyc1992@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>> What debugging support MCJIT has is provided by the RuntimeDyld utility,<br>
> which ORC shares. I would expect anything in that document to apply to ORC<br>
> as well, though I haven't tested it personally.<br>
<br>
</span>I'm pretty sure that's not the case, at least not with any simple<br>
orcjit tutorials I've seen.<br>
<br>
The GDB support is provided by `GDBJITRegistrationListener` which is<br>
registered to MCJIT directly in the constructor and AFAICT no where<br>
else. Also, since there doesn't seem to be a default (non-noop)<br>
implementation of `ExecutionEngine::RegisterJITE<wbr>ventListener` I<br>
believe you can't just call `RegisterJITEventListener` on non-MCJIT<br>
and expect it to work.<br>
<br>
So while I totally believe one can use<br>
`JITEventListener::createGDBRe<wbr>gistrationListener()` to hook the JIT<br>
with the the gdb registration function, it won't work without writing<br>
code to explicitly do that (in additional to actually writing code to<br>
interface with the event listener directly). OTOH though when using<br>
MCJIT, this is done by default and one don't need to write any code<br>
for it to work.<br>
<div class="m_-8766357816220439770HOEnZb"><div class="m_-8766357816220439770h5"><br>
><br>
> For what it's worth, this is something I'm interested in and hope to make<br>
> some progress on in tree in the not too distant future.<br>
><br>
> -- Lang.<br>
><br>
> On Mon, Oct 9, 2017 at 12:27 PM, Jameson Nash via llvm-dev<br>
> <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br>
>><br>
>> That is correct – there is no built-in support. You have to provide your<br>
>> own Registrar to the ObjectLinkingLayer to provide this sort of<br>
>> functionality. (For example JuliaLang does that at<br>
>> <a href="https://github.com/JuliaLang/julia/blob/1216e5f60cd2b23e29856b5227399ab0f3abef76/src/jitlayers.cpp#L437" rel="noreferrer" target="_blank">https://github.com/JuliaLang/j<wbr>ulia/blob/1216e5f60cd2b23e2985<wbr>6b5227399ab0f3abef76/src/<wbr>jitlayers.cpp#L437</a>,<br>
>> in addition to registering the function pointer and object file info in<br>
>> several other places).<br>
>><br>
>><br>
>> On Sun, Oct 8, 2017 at 11:48 PM Connor Gray via llvm-dev<br>
>> <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br>
>>><br>
>>> Hi,<br>
>>><br>
>>> I’m wondering if it’s possible to debug code JIT’ed with the newer ORC<br>
>>> JIT. The LLVM documentation has a page at<br>
>>><br>
>>>     <a href="http://llvm.org/docs/DebuggingJITedCode.html" rel="noreferrer" target="_blank">llvm.org/docs/DebuggingJITedC<wbr>ode.html</a><br>
>>><br>
>>> showing an example of using gdb to debug MCJIT’ed code, but has no<br>
>>> mention of ORC JIT.<br>
>>><br>
>>> From searching around online I’ve gotten the impression that ORC JIT does<br>
>>> *not* support providing debugging information to attached debuggers, but no<br>
>>> definitive source. Is it the case that ORC JIT in fact does support<br>
>>> debugging, and if so, are there examples available; or is my initial<br>
>>> impression correct?<br>
>>><br>
>>> Thanks,<br>
>>> Connor<br>
>>> ______________________________<wbr>_________________<br>
>>> LLVM Developers mailing list<br>
>>> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
>>> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
>><br>
>><br>
>> ______________________________<wbr>_________________<br>
>> LLVM Developers mailing list<br>
>> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
>> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
>><br>
><br>
><br>
> ______________________________<wbr>_________________<br>
> LLVM Developers mailing list<br>
> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
><br>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>