Hi all,

I have been trying to modify the execution flow in QEMU. Briefly, at
certain points in my program, I have tried to reverse the direction of the
branch i.e. if the branch was taken, I have forced the branch to not be
taken or if the branch was not-taken, I have forced the branch to be taken.

I am trying to make this work so that eventually QEMU follows this modified
path and ends up finishing the execution of the application.

To make this work, I have disabled hardware interrupts as well and am using
the -icount auto flags.

After a while, I seem to get page-faults in the kernel code itself.

I see that the page-fault handler executes the below function

https://github.com/qemu/qemu/blob/67b9c5d4f37ea373ebf9aad251883886e34bf2e1/target/i386/seg_helper.c#L847

This directs to the async_page_fault handler in the kernel and eventually
stops because page faults in the kernel are not expected.

I wanted to disable the page faults so that the execution does not get
stuck and eventually finish. Are there any mechanisms to disable the page
faults without affecting the "modified" execution ?

Regards,
Arnab

Reply via email to