llvm / llvm/llvm-project

lldb state no change after executing `bc` command

Open
#166,516 1 comment 0 reactions 0 assignees View on GitHub
lldb
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.