Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
255 views
in Technique[技术] by (71.8m points)

macos - Where is the image base set when using LLVM MCJIT?

I am working on porting an application that uses LLVM MCJIT (RPCS3) to macOS. I have run into an issue when calling existing functions from the JIT: calling such functions results in a segfault, as an offset of 0x100000000 is added to the address of each function. llvm::ExecutionEngine::addGlobalMapping is used to add the mappings for these existing functions. To confirm this, I tried replacing the address of one of these functions with 0x1234. When calling the function from the JIT, the application now segfaults at 0x100001234 (not 0x1234 as expected). This behaved as expected (segfault at 0x1234) on Linux. Where could this offset be coming from? Is it possible to manually specify the image base in MCJIT? I am not too familiar with LLVM MCJIT internals.

question from:https://stackoverflow.com/questions/65947321/where-is-the-image-base-set-when-using-llvm-mcjit

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...