When `SyntheticStackFrameList::FetchFramesUpTo` is called incrementally, PC-less synthetic frames can end up with identical `StackID` values. This happens because `num_synthetic_frames` is reset to zero on each call, handing out duplicate call frame addresses. Since PC-less frames all share `LLDB_INVALID_ADDRESS` as their PC, the `StackID` equality check cannot distinguish them, and `ExecutionContextRef` resolves the wrong frame. The fix counts existing synthetic frames in `m_frames` before starting the fetch loop so new frames receive unique call frame addresses.
38 KiB
38 KiB