Hi,
I've been toying with running C++ code on Jolt. The full story is documented here.
tl;dr:
- I have a C++ ray tracer example running on Jolt VM. The guest program was built using clang / lld alone. I used a patched musl and libcxx so they are compatible with Jolt's ABI. I think this can serve as a different example in addition to Jolt's macro based approach.
- I noticed a slight discrepancy: the doc mentions termination address, MemoryLayout also has it, but writing to this address is actually a no-op, execution actually terminates with an infinite loop. My question is: is this just a coincidence? Will Jolt keep using the termination address, or be terminated just via
j .?
- I understand that jolt has guest level profiling by explicitly marking a code section. I still believe a full program instrumentation path could be useful. So I built a simple module that converts Jolt's trace to a profiler usage format with multiple backends: flamegraphs, pprof and samply. I assume it might be useful for more. If you believe so I can start preparing it for upstream.
Let me know if you have any thoughts on the above points or the detailed post in general. Many thanks!
Hi,
I've been toying with running C++ code on Jolt. The full story is documented here.
tl;dr:
j .?Let me know if you have any thoughts on the above points or the detailed post in general. Many thanks!