-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Setting PC in uc_cb_insn_sys_t callback does not take effect in ARM64 architecture #2058
Comments
That should be expected because PC is not synced for those hooks. What's your use case? |
@wtdcode |
@wtdcode The prototype of this hook is as follows: |
I have a related / similar issue to this one... If I hook mrs/msr to support unhandled system registers, then the "skip" feature doesn't work as I would expect. I'm having issues with system registers seemingly supported by UC, but they give me "Unexpected CPU exception". In the mean time, I have been hooking them to emulate their behaviour and skip such instructions. For example, CPTR_EL3 is part of the standard EL3 register set according to the latest UC source code but it doesn't work for me. Below is my current code:
|
I somehow fixed the "system register doesn't exist" problem, the machine was in EL2h despite my pstate change. |
Are you on dev branch? |
I'm on "master" branch. |
I am encountering an issue with the Unicorn Engine where setting the PC (Program Counter) in the uc_cb_insn_sys_t callback does not appear to take effect. Despite writing a new value to the PC register within the callback, the emulation continues to execute from the original PC value.
Notice that the emulation continues executing from the original PC address, not the updated one.
The text was updated successfully, but these errors were encountered: