Skip to content
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

Review replay instruction code #378

Open
tyroguru opened this issue Oct 9, 2023 · 0 comments
Open

Review replay instruction code #378

tyroguru opened this issue Oct 9, 2023 · 0 comments
Assignees
Labels
core Core Framework (Process Control, Instruction Patching etc.)

Comments

@tyroguru
Copy link
Contributor

tyroguru commented Oct 9, 2023

Currently when we patch an instruction the instruction that is patched over is saved into a replay area. When a thread traps in on the breakpoint trap we eventually single step this replay instruction so that that effects are seen in the register set before we reset the trapped thread to after the original patched instruction. This sequence of events is only really required if we were to leave the breakpoint trap installed for a period of time to capture lots of objects. With the current scheme of objects being captured for a single thread we could just rewind the %rip of the trapping thread after putting the original instruction back and not do the whole replay sequence.

I'd actually we rather captured objects from multiple threads but it may not be too much work to do the above in the current scheme. The reason for doing this, obviously, is to not make the trapped thread do any more work than is absolutley necessary and keep induced latency to a minimum.

@tyroguru tyroguru self-assigned this Oct 9, 2023
@tyroguru tyroguru added the core Core Framework (Process Control, Instruction Patching etc.) label Oct 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core Core Framework (Process Control, Instruction Patching etc.)
Projects
None yet
Development

No branches or pull requests

1 participant