-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Typically, it’s due to
- Instrumenting every instruction executed.
- Instrumenting every memory access.
Optimize your program with less instrumentation.
PC is only guaranteed to be correct if you install any hooks.
Qnicorn is a pure CPU emulator and usually it’s due to no handler registered for instructions like syscall
and SVC
. If you expect system emulation, you probably would like qiling framework.
Currently, only a small subset of the instructions can be instrumented.
On x86, all available instructions are: in
out
syscall
sysenter
cpuid
.
As stated, Qnicorn is a pure CPU emulator. For such emulation, you have two choices:
- Use the
timeout
parameter ofuc_emu_start
- Use the
count
parameter ofuc_emu_start
After emulation stops, you may check anything you feel interested and resume emulation accordingly.
Note that for cortex-m exec_return
, Qnicorn has a magic software exception with interrupt number 8. You may register a hook to handle that.
We will do. Stay tuned!
Yes, it’s possible but that is not Qnicorn’s goal and there is no simple switch in qemu to disable softmmu.
See milestones and coding convention.
Be sure to send pull requests for our dev branch only.
See qemu/VERSION file for details.