lldb state no change after executing `bc` command
- Dominant language
- LLVM
- Stars
- 40.5k
- Forks
- 18.7k
- PR merge metrics
- PR metrics pending
Description
We perform the following operations:
1. Start a rr debug server(a debug server that supports reverse execution) and then connect lldb to that server using python script
2. Send a `bc` command via: `interpreter.HandleCommand("process plugin packet send bc")`, this give response: "T05thread:p11480a.11480a;watch:7fff7d826d00;threads:11480a;thread-pcs:558104422175", we can see that the $pc has change from 0x0000558104422181 to 0x558104422175, but the lldb process's $pc register and stack frames remain unchange no matter what we do(we've tried `process.SendAsyncInterrupt()` and `process.GetState()` in the hope that it will trigger a process state refresh but they all failed).
Is there any way we could do to tirgger a process state refresh after executing the `bc` command?
Contributor guide
Research direction
Reproduce the rr debug-server sequence and the `interpreter.HandleCommand("process plugin packet send bc")` call. Start by examining the behavior around `process.SendAsyncInterrupt()` and `process.GetState()` after the command. Done means the LLDB process state, including `$pc` and stack frames, reflects the changed response from the reverse-execution server.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- devtools, reverse-engineering
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100