LLVM:如何在运行时访问 JIT API编辑我自己?
您能否建议是否可以从正在执行的程序访问 LLVM JIT API?我的目标是能够动态操作(添加/更新/删除)类、方法和数据。
我最好还是和 Clang 待在一起。欢迎任何想法。
could you suggest if that's possible to access LLVM JIT API from the program being executed? My goal is to be able to manipulate(add/update/remove) classes, methods and data on the fly.
Preferably, I would stay with Clang. Any ideas are welcome.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这似乎是很容易的事情。在 JIT 中,您可以提供任何外部函数到任意地址之间的映射。所以,基本上你只需在被 JIT 处理的 IR 中定义一些函数,将其绑定到外部世界的地址,这会给你带来麻烦。
特别是,http://llvm.org/doxygen/classllvm_1_1ExecutionEngine.html#a805704b52a327cc6b37aebf9cba14169是您应该在此处使用的功能。
This seems to be pretty easy stuff. In the JIT you can provide a mapping between any external function to the arbitrary address. So, basically you'll just define some function in your IR being JITed, bind it to the address in the outside world and this will make a trick for you.
In particular, http://llvm.org/doxygen/classllvm_1_1ExecutionEngine.html#a805704b52a327cc6b37aebf9cba14169 is the function you should use here.